Method and system for providing task information in a place

ABSTRACT

Collaboration space object model provides for a place consisting of rooms created by users interacting with a client browser. A skin (i.e., theme) may be used as template for creating places. PlaceBots (i.e., agents) provide for accessing, processing and managing data in a place. HTML may be dragged and dropped into a place, where it is parsed and corresponding place fields created. MS Excel or Word documents may be dragged and dropped into a place, which creates a corresponding form, and users may create new documents using that form. A place type comprising a template of an entire place, or collaboration space, may be used to create new places. Changes made to a place may be reported, subject to security controls, by selecting what&#39;s new. Task fields are provided allowing web browser creation of forms for work flow. Place enabled objects are provided for synchronous communications. A quick browse feature provides a simplified format for browser windows based on selection of HTML links. MS Office documents may launched within a place for in place editing and importing the resulting document into the place.

CROSS REFERENCES TO RELATED APPLICATIONS

[0001] The following U. S. patent applications, filed concurrentlyherewith, are assigned to the same assignee hereof and contain subjectmatter related to the subject matter of the present application.

[0002] Assignee docket LOT9 2000 0021 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Creating a Theme of a Placeto be Used as a Template for Other Places”;

[0003] Assignee docket LOT9 2000 0022 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Automatically Accessing,Processing, and Managing the Data In a Place”;

[0004] Assignee docket LOT9 2000 0023 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Importing HTML Forms”;

[0005] Assignee docket LOT9 2000 0024 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Importing MS Office Forms”;

[0006] Assignee docket LOT9 2000 0025 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Creating a Place Type to BeUsed as a Template for Other Places”;

[0007] Assignee docket LOT9 2000 0026 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Identifying and DisplayingInformation That Is New or Has Been Updated In a Place”;

[0008] Assignee docket LOT9 2000 0028 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Providing SynchronousCommunication and Person Awareness In a Place”

[0009] Assignee docket LOT9 2000 0029 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Providing a Separate BrowserWindow With Information From the Main Window In a Simpler Format”;

[0010] Assignee docket LOT9 2000 0030 US1, U.S. patent application Ser.No. ______, entitled “Method and System for Allowing In Place Editing ofOffice Documents In a Place”.

BACKGROUND OF THE INVENTION

[0011] The present application is also an improvement upon the followingcopending, previously filed applications, assigned to the same assignee:

[0012] Ser. No. ______, entitled “System and Method for InterconnectingSecure Rooms”, assignee docket LO999044;

[0013] Ser. No. ______, entitled “System and Method for DynamicManagement of Web Site”, assignee docket LO999045;

[0014] Ser. No. ______, entitled “System and Method for Presentation ofRoom Navigation”, assignee docket LO999046;

[0015] Ser. No. ______, entitled “System and Method for Independent RoomSecurity Management”, assignee docket LO99047;

[0016] Ser. No. ______, entitled “System and Method for DynamicallyGenera ting Viewable Graphics”, assignee docket LO999048;

[0017] Ser. No. ______, entitled “System and Method for Dynamic BrowserManagement of Web Site”, assignee docket LO999049;

[0018] Ser. No. ______, entitled “System and Method for Room Decorationand Inheritance”, assignee docket LO999051;

[0019] Ser. No. ______, entitled “System and Method for Online/OfflineUninterrupted Updating of Rooms in Collaboration Space”, assignee docketLO999052;

[0020] Ser. No. ______, entitled “System and Method for ClientReplication of Collaboration Space”, assignee docket LO999053;

[0021] Ser. No. ______, entitled “System and Method for Browser Creationand Maintenance of Forms”, assignee docket LO999054;

[0022] Ser. No. ______, entitled “System and Method for BrowserDefinition of Workflow Documents”, assignee docket LO999055.

[0023] The above-identified patent applications are incorporated hereinby reference.

[0024] 1. Technical Field of the Invention

[0025] This invention relates to web technology. More particularly, itrelates to the creation and use of collaboration sites on the Internetor on an Intranet client/server system and to the graphical userinterface used in Internet communications.

[0026] 2. Background Art

[0027] The Internet and the World Wide Web (WWW) provideintra-enterprise connectivity, inter-enterprise connectivity andapplication hosting on a larger scale than ever before. By exploitingthe broadly available and deployed standards of the Internet and theWWW, system users and designers can leverage a single architecture tobuild client/server applications for internal use that can reach outsideto customers, business partners and suppliers.

[0028] Collaboration requires simultaneous communication betweenindividuals on a project team. Typically, this has required that theteam members work in the same location. Phone and video conferencing hasenabled some remote work on the part of team members. Also, because ofthe growth of the Internet, collaboration using web technologies hasbeen attempted, primarily using electronic mail (E-mail), Internet chatrooms, electronic whiteboards, and conferencing software. The mostuseful has been E-mail, but this approach results in a large trail orthread of notes as collaboration on a project advances, and these noteshave no home or place to reside which is accessible by all team memberssubstantially instantaneously and simultaneously. People often entersuch a thread at different points, and such threads are not efficient incoordinating the work of many different people on a team which mayinclude in-house developers and others, such as remote contractors,outside of an enterprise's firewall.

[0029] In order for such disperse teams to have the same, orsubstantially the same, collaboration environment as individuals workingin the same physical office, a system is required which facilitatesinstant messaging, voice conferencing, electronic white boarding, andtext and non- text file exchange. Such a system needs to provide acollaborative electronic room, or space, which is easily configured foruse by team members without substantial administrative or applicationdevelopment support, and preferably include both groupware and projectoriented applications such as shared folders, file exchange, workflow,group calendars, threaded conversations, version control, file locking,file merging, and security.

[0030] There is a need in the art for such a system which is easy to setup and which enables diverse and remote teams to become immediatelyproductive in a secure environment. It would be, further, most desirableto allow such a collaborative environment to be set up withoutadministrative support, that is by members of the team itself, using afamiliar and easy to use browser user interface. Members of the team,acting with manager or author authority, and using such a browserinterface without involving administrative or application developmentsupport, need to be able to set up a folder or room for each projectelement, such as a source code component, with version control, workflowelements, and group calendaring for tracking the project or projectelement with respect to approvals and deadlines. Such a room needs toreceive from team members reports and have them routed to appropriateteam members for review, resolution, and approval.

[0031] The WWW is a collection of servers on an IP (Internet Protocol)network, such as the Internet, an Intranet or an Extranet, that utilizethe Hypertext Transfer Protocol (HTTP). Hereinafter, “Internet” 100 willbe used to refer to any IP network.

[0032] HTTP is a known application protocol that provides users withaccess to files, which can be in different formats, such as text,graphics, images, sound, and video, using a standard page descriptionlanguage known as Hypertext Markup Language (HTML). Among a number ofbasic document formatting functions, HTML allows software developers tospecify graphical pointers on displayed web pages, commonly referred toas “hyperlinks,” that point to other web pages resident on remoteservers. Hyperlinks commonly are displayed as highlighted text or othergraphical image on the web page. Selection of a hyperlink with apointing device, such as a computer mouse, causes the local computer todownload the HTML associated with the web page from a remote server. Thebrowser then renders the HTML into the displayed web page.

[0033] Web pages accessed over the Internet, whether by a hyperlink,opening directly via an “open” button in the browser, or some othermeans, are commonly downloaded into the volatile cache of a localcomputer system. In a computer system, for example, the volatile cacheis a high- speed buffer that temporarily stores web pages from accessedremote web sites. The volatile cache thus enables a user to quicklyreview web pages that were already downloaded, thereby eliminating theneed to repeat the relatively slow process of traversing the Internet toaccess previously viewed web pages. This is called local caching.

[0034] It is an object of the invention to provide a collaboration spaceapplication model for creating web applications that are aestheticallypleasing and present the user with a simple interface.

[0035] It is a further object of the invention to provide for creatingweb applications that are instantly created, instantly archived, teamand project oriented, easy to use, created, accessed and administeredvia the Web, reusable, and extensible.

[0036] It is a further object of the invention to provide an improvedsystem and method for creating new fields for use in forms incollaboration space.

SUMMARY OF THE INVENTION

[0037] In accordance with the invention, a method and system is providedfor creating pages in collaboration space by, at a client browser,providing a user interface to collaboration space; responsive to a userrequest to create a new form, displaying an add fields panel including atask field; responsive to user selection of the task field, providinginput fields for the user to enter task name, start date, priority;thereafter, allowing users to create pages based on the form byselecting the form from a list of available forms.

[0038] In accordance with an aspect of the invention, there is provideda computer program product configured to be operable for creating pagesin collaboration space by, at a client browser, providing a userinterface to collaboration space; responsive to a user request to createa new form, displaying an add fields panel including a task field;responsive to user selection of the task field, providing input fieldsfor the user to enter task name, start date, priority; thereafter,allowing other users to create pages based on the form by selecting theform from a list of available forms.

[0039] Other features and advantages of this invention will becomeapparent from the following detailed description of the presentlypreferred embodiment of the invention, taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0040]FIG. 1 is a schematic representation of a typical server/clientsystem implementing the collaboration space of the preferred embodimentsof the invention.

[0041]FIG. 2 is a schematic representation of various server and clientcomponents implementing the collaboration space of the preferredembodiments of the invention.

[0042]FIG. 3 is a schematic map illustrating Domino objects relating tothe object model of the collaboration space of the preferred embodimentsof the invention.

[0043]FIG. 4 is a schematic map of the object model implementing thecollaboration space of the preferred embodiments of the invention.

[0044]FIG. 5 illustrates the components of a collaboration space userinterface.

[0045]FIG. 6 is a flow chart representation of generation ofcollaboration space data objects.

[0046]FIG. 7 illustrates a typical collaboration space user interface.

[0047]FIG. 8 is a schematic representation of a directory structure,along with the files in an exemplary collaboration space server.

[0048]FIG. 9 is a flow chart representing the method steps for creatinga PlaceBot.

[0049]FIG. 10 is a schematic representation of a screen captureillustrating creation of a new page in accordance with a preferredembodiment of the invention.

[0050]FIG. 11 is a schematic representation of a screen captureillustrating the user interface for creating a new page in collaborationspace.

[0051]FIG. 12 is a schematic representation of a screen captureillustrating the user interface for in Place editing of Microsoftdocuments.

[0052]FIG. 13 is a flow chart illustrating in-place editing inaccordance with the preferred embodiment of the invention.

[0053]FIG. 14 is a schematic representation of a screen captureillustrating the user interface for in Place editing of Microsoftdocuments.

[0054]FIG. 15 is a schematic representation of a screen captureillustrating the user interface for attaching forms.

[0055]FIG. 16 is a system diagram illustrating importing interestcontent into collaboration space.

[0056] FIGS. 17-20 are schematic representations illustrating the userinterface for editing a collaboration space file attachment and savingthe changes back to collaboration space.

[0057]FIG. 21 is a flow chart illustrating the creation and importationinto collaboration space of a form.

[0058]FIG. 22 is a schematic representation of a task page presented inlist mode.

[0059]FIG. 23 is a schematic representation of a task page presented intime line mode.

[0060]FIG. 24 is a schematic representation of a read scene statedisplay for tasks.

[0061]FIG. 25 is a schematic representation of a user interface forintegrating a form into workflow.

[0062]FIG. 26 is a schematic representation of a user interface foradding events to a calendar page and for publishing it in a specificfolder in collaboration space.

[0063]FIG. 27 is a schematic representation of a user interfaceincluding upload control.

BEST MODE FOR CARRYING OUT THE INVENTION Architecture Overview

[0064] Referring to FIG. 1, a broad overview of a system implementingthe collaboration space technology of an exemplary embodiment of thesystem of the invention is presented.

[0065] Server 100 includes a Domino server 104, HTTP server 106,QuickPlace extensions 108, and open storage 130. Client 102 includes aQuickPlace user interface 110 and browser 112.

[0066] QuickPlace open storage 130 includes all the databases andtemplates that implement the collaboration space. Domino 132 and activedirectory 134 define the collaboration process. The user interfaces withthe system through browser 112. NSF agents 114, 116, Java 118 andLotusScript 120 represent components and templates downloaded fromserver 100 in support of collaboration space at client 102. All theextensions 108 are keyed off the URL, as will be further explainedhereafter.

[0067] Notes API 136, Notes designer 138 and client 140, externalapplications 142, including Java agents 144 and LotusScript 146, arelocated off of open storage 130. Open storage 130 is storage where adocument can be communicated, such that external applications 142 maymanipulate it. QuickPlaces, pages, folders, can be created and changed,and data 148 can be imported and exported, using agents in Java 144 orLotusScript 146.

[0068] QuickPlace is primarily concerned with representing thecollaboration space. Consequently, designers and consultants are able tointegrate into that space custom features and data from otherapplications. HTML forms 122, written using an HTML editor 124, skins248 (HTML 244 and QP tags), external files written using Java 118, andMS office documents 250 from MS office 228, may be imported to server100 by dragging and dropping 111 from local storage 502 into an uploadcontrol panel 240 in browser 112.

[0069] An alternate client 126 and encapsulated place types 128 may beprovided from which other spaces 129 can be created that take advantageof the QuickPlace storage model, providing functionality which can bemanipulated using browser 112, including the integration of externaltechnology providing opportunity for deep customization.

Server/Client Components

[0070] Referring to FIG. 2, in accordance with an exemplary embodimentof the invention, several components comprise QuickPlace server 100 andclient 102.

[0071] QuickPlace is built on top of the Domino server 104. In the caseof a stand alone installation, a subset of the Domino server isinstalled. Server 100 also includes HTTP server 106, or the optional MSIIS server 150. QuickPlace extension 108 is where we built most of thecollaboration space implementing code exists the server 100. Server 100also includes a spell checker 152 and a text to GIF converter(Limerick).

[0072] Client 102 includes rich text edit control 162, and applet 164with which to apply various attributes and is a key component of theQuickPlace experience. Upload control 166 is used to attach and uploadfiles, such as bringing in an agent and uploading it to a place. This isalso used to bring in an imported HTML form or a different skin. Uploadcontrol is implemented to allow ease of use via drag and drop. Javascript 118 includes code downloaded to the client to complete thegeneration of HTML pages.

Collaboration Space Object Model

[0073] Referring to FIG. 3, the collaboration space of the preferredembodiment of the invention, referred to as QuickPlace, is implementedwith an object model which comprises very few objects, very few conceptsin order to make it easy to build and manage. And the fewer concepts,the better.

[0074] Referring to FIG. 3, the object model is independent of itsimplementation. There exists a place 172 that has rooms 174, and thereare pages 182 in those rooms. And then there are members 190 of theplace. Those four objects 172, 174, 182 and 190 are the primary objects.

[0075] Folders 176 add more complexity to the model, but bring a lot ofbenefit as well. Pages 182 are organized within folders. Two furtherobjects are primarily visible to the designer of the place. And theseare forms 178 and fields 180.

[0076] Place type 196 is a more advanced object, and is an object fromwhich a place 172 is created. Place type 196 represents the foundationfor building true collaborative applications. Everything created inbuilding collaboration space is done in a place 172. Once such a placeis created, it can be made a template 266 (FIG. 6) and copied as a placetype 196. Once it becomes a place type 196, it is available for use byothers for building additional places 172 that include the format, lookand feel, and other characteristics of the original place.

[0077] This is illustrated in FIG. 11, where a first place 360 isconverted by QP extensions 108 into a place type, or template 364 fromwhich additional places 366 may be created.

[0078] Room type 198 is an object provided for creating rooms 174 whichare of a given type.

[0079] The last two objects illustrated in FIG. 3 are skins 200 andPlaceBots 184. Skins 200 control everything about the user interface,including layout and style. Layout defines the positioning of componentson the screen. Style defines the form and colors of those components. APlaceBot 184 is an enhanced agent, enhanced in the sense that it enablesthe use of Java or Lotus Notes or equivalent text editors. Once writtenusing such an editor, and uploaded to a place 172, the server compilesthe PlaceBot into an agent, reporting any errors. The agent resultingfrom a compiled PlaceBot can be scheduled to run at certain times, orupon opening a form. That is, the PlaceBot may be associated with aform, such as a sales order which, when opened, will cause the agent toexecute. Thus, PlaceBots 184 are an essential part of buildingcollaboration applications, for they are the primary repository forcustom logic.

[0080] Referring further to FIG. 3, a preferred implementation of theobject model heretofore described uses Lotus Notes/Domino concepts andobjects. Thus, Notes/Domino file system directory 202 represents place172; database 204 represents room 174; folder view 206 represents folder176; pages 182, members 190, forms 178, fields 180 and skins 200 arerepresented by notes 208, 210, 212, 214, 220, respectively.

[0081] Place 172 is represented as a file system directory. So whenevera place called Acme is created, a file system directory 202 called Acmewill be instantiated. Within that directory 202, there are a number ofobjects. Each room 174 is a Notes database 204. Folders 176 areimplemented as Notes folders or views 206 depending on what's moreconvenient for the particular folder.

[0082] Pages 182 are a combination of data notes, forms and sub-forms208. A member 190 is a data note 190 in a context room 174. Forms 178and fields 180 are data notes. Place type 196 is a directory* 216 thatcontains all the rooms 174 that make up that place type. A room type 198is a template 218. Skins 200 are a note 220 and PlaceBot 184 is an agent222.

Notes/Domino Implementation of the Object Model

[0083] Developers familiar with the Domino Object Model (Domino OM) willbe able to leverage their existing skills when developing on theQuickPlace platform. “PlaceBots” for example are implemented as DominoAgents, and it is possible to create and test them on Domino Databases.Within the QuickPlace object model (OM), however, there are somedivergences from the Domino OM. For example, QuickPlace forms 178 arenot the same as Domino Forms. QuickPlace forms more closely resembleDomino Documents, because they are created using a Domino form, andcontain a Domino text field with a value of “h_Form”. The value of“h_form” tells QuickPlace that this Domino document should be renderedin a browser as a QuickPlace form 178.

[0084] This structure provides flexibility for Web applications withless complexity than if Domino Forms were used. For example, in adefault QuickPlace, a user can create a new QuickPlace form 178. Theuser chooses which fields to include in form 178, in what order theyshould appear and what text and or graphics should appear near them. Tocreate this sort of instant structure on the Web using Domino Formswould be very complex indeed. QuickPlace has extended this concept ofbeing able to use HTML to define forms 178 by enabling the creation ofcustom QuickPlace forms using imported HTML 122. These Forms not onlymake use of Web authoring technologies such as JavaScript, but also havethe back end support of Domino. This back end logic is implemented viatools such as PlaceBots (Domino Agents) 184. This means that forms 178have the ability to not only to define the look and feel of visibleparts of an application, they also have the potential to initiateworkflow and many other powerful automated features.

[0085] QuickPlace forms 178 have been optimized by stripping away manyof the Notes features not required when used on the Web. A anotheradvantage of this structure is that it enables the use of Web authoringtools to extend the objects. For example, with respect to QuickPlaceforms, it is possible to modify forms using XML, JavaScript and HTML andany other Web tools. Knowledge of JavaScript and HTML are more commonthan Domino Designer skills, thus making the QuickPlace a very openplatform. Some parts of the QuickPlace OM implement Domino/Notesfunctionality in different ways to a standard Domino application. Forexample, QuickPlace uses Domino's security and authentication model as abasis for its management of access to QuickPlaces. However, instead ofprimarily utilizing the Domino Directory, QuickPlace also uses aContacts1.nsf database for each QuickPlace.

Containment and Association of Objects

[0086] Referring to FIG. 4, this object model is further described. FIG.4 illustrates selected QuickPlace objects, the directory structure andhow Objects relate to each other within the hierarchy. This modelprovides a visual representation of the containment and associationbetween objects.

QuickPlace Server

[0087] The highest level of the model is the QuickPlace Server 170.Within server 170 are all of the QuickPlaces 172 as well as theresources they access to finally render Web applications.

[0088] This FIG. 4 displays the Model focusing on QuickPlaces. Thefollowing explanation, written from a programmers perspective, describeseach of the objects of the model and they can be accessed in anapplication.

[0089] QuickPlace uses notes for many of its objects 182, 190, 178, 180and 200, so that objects in the Place can be organized more easily.Table 1 sets forth the QP objects and their Notes/Domino equivalents. Asan example of how design Notes are implemented consider the Table OfContents (TOC). The Table Of Contents is a list of pages, folders andtools such as the Customize Area. Domino Folders may be listed using alink document, or Note. TABLE 1 QUICKPLACE OBJECTS AND DOMINO EQUIVALENTQuickPlace Object Domino Equivalent QuickPlace Server File DirectoryPlace File Directory Page Data Note, Form & Subform PlaceBot DominoAgent Theme Data Note Member Data Note in Contacts1.nsf Subroom * NSFDatabase SubroomTheme Data Note SubroomMember Data Note in Contacts1.nsfRoom NSF Database Folder / TOC Folder or View Form Data Note Field DataNote

[0090] QuickPlace Server 170 is a file directory containing all Placesand Resources. The Domino equivalent is a file directory 202 named“quickplace”. This identifies the main folder 176 for a QuickPlaceserver 170. If the QPServer 170 is running as a stand alone, this folderwill be in the QuickPlace data folder. For example

[0091] D:\QuickPlace\Data\quickplace. If the QPServer 170 is running ontop of a Domino server the folder will be the Domino Data folder. Forexample

[0092] D:\Lotus\Domino\Data\quickplace.

[0093] To locate QuickPlace Server 170 in PlaceBots and get access toall of its databases, a LotusScript method GetDbServer is executedtogether with a test that the Path to databases starts with“QuickPlace”.

Place Object

[0094] Place object 172 is a directory in the “QuickPlace” directorygrouping resources for a Place. The Domino equivalent is a filedirectory bearing the name of the QuickPlace. Place object 172 is adirectory that brings together a Place for organizational purposes. Italso identifies the NSFs 114 as belonging to the place 172 by bearingthe name of the QuickPlace. As distinguished from a place object 172,the main room 174 in a QuickPlace is a database called Main.nsf. Placeobject 172 groups and identifies the Main.nsf resources for the Placeand any subrooms 194 in the Place. Place object 172 contains severalfiles. There is a Main.nsf, Contacts1.nsf and a Search.nsf file. If theQuickPlace has a Subroom 194 there will also be an NSF file with itsname starting with “PageLibrary”. Each of these page library files is aRoom 174.

[0095] The place object in PlaceBots 184: place object (directory) 172,contains the databases which form a place. When writing PlaceBots, onecan search for this directory by using the name of the QuickPlace. Inthis directory will be found all the databases will belong to that place172. This file directory's name is the name of the QuickPlace. Forexample, if the QuickPlace is called “Millennia”, this directory has thefollowing path within the QuickPlace server 170:

[0096] \millennia

[0097] To find the place object 172 for the Millennia Place inLotusScript the script procedure of Table 2 may be used: TABLE 2 SCRIPTPROCEDURE FOR FINDING A PLACE Dim ndbPlace As NotesDatabase Set dirPlace= New NotesDbDirectory( g_sServerName ) Set ndbPlace =dirPlace.GetFirstDatabase( DATABASE ) sNdbPlaceFilepath =ndbPlace.FilePath If Instr(1, Lcase( sNdbPlaceFilepath ),|quickplace\millennia| ) Then {grave over ( )}// the Place is found

Room Object

[0098] Room object 174 is the main container for a Place, containing acollection of pages and tools. The Domino Equivalent an NSF Database.The room 174 is the main container for a QuickPlace's content. Forexample, when using the Millennia Place, most of what is seen iscontained in the Room object. The Room object is always called Main.nsf,and holds folders 176 and pages 182 for the QuickPlace, as well asmanaging links to any subrooms 194 in the place object 172. Room object174 uses elements held in other databases. For example many of thestandard images QuickPlace displays are in a resources object (notshown). Each room 174 has its own security and authentication, and theinformation required to do this is contained in databases such asContacts1.nsf. A room 174 breaks down a place 172 into smaller areas tohelp define structure. Each room 174 has its own security andauthentication. This allows separate user groups. It also means thatsubrooms 194 can be created for separate projects, forming a separateshared space. The room object 174 then forms a common entry point whereshared resources can be stored.

[0099] The room object in PlaceBots: to locate a room 174, one looks inthe main QuickPlace Server 170 directory, then looks into the roomobject (a directory bearing the name of the QuickPlace), then looks fora database called “Main.nsf”.

[0100] Returning to previous LotusScript example of locating a Place 172(Table 2), the match string can be extended from

[0101] “quickplace\millennia” to

[0102] “quickplace\millennia\main nsf”

[0103] to find the room object 174, as set forth in Table 3. TABLE 3SCRIPT PROCEDURE TO FIND A ROOM OBJECT Set dirPlace = NewNotesDbDirectory( g_sServerName ) Set ndbPlace =dirPlace.GetFirstDatabase( DATABASE ) sNdbPlaceFilepath =ndbPlace.FilePath If Instr(1, Lcase( sNdbPlaceFilepath ),|quickplace\millennia\main.nsf| ) Then {grave over ( )}//the Room idfound.

[0104] To access elements contained in a room 174, the views and folders176 in the room are accessed. For example to find the elements visiblein the Table Of Contents (TOC), the “h_TOC” view is used.

[0105] The Room object 174 in HTML is visible in URLs as the “main.nsf”.To access room object 174 most easily, a relative path is used from thecurrent object if it is in the same Place 172. For example, whencreating a URL link from a subroom 194 to a room 174, the URL begins asfollows:

[0106] <a href=“ . . . / . . . /Main.nsf/

[0107] where the “dot dot slash dot dot slash” syntax is a part of theURL, not an abbreviation for this example. Using this relative URL makesthe URL more robust. In other words, this URL can be used to find the(Main.nsf) room 174 for any place 172.

[0108] Room fields 180 used to define rooms 174 are set forth in Table4. TABLE 4 FIELDS DEFINING ROOMS Field Name Description h_HaikuName Thename of this Place h_AreaType The name of the template used to createthis room. h_AreaParent The name of the parent database h_ShowSecurityIf h_SetSecurity = 1, the QuickPlace server sets h_ShowSecurity to 1.h_SetCalendar Determines if the Calendar will be visible in a Room. Ifthe field has the value of “1” a link to the Calendar will be displayedin the sidebar h_SetSecurity This field works in conjunction with theh_ShowSecurity field. It is only valid for Readers and Authors, becauseManagers must always be able to edit security of a Room. If the field isset to “1” a link to the Security page will be displayed in the sidebarfor Readers and Authors (if they select Security in this case they willsee only their own information) h_MailDb The name of the database thatreceives email addressed to this Place.

Folder Object

[0109] A folder object 176 is an object for indexing content, groupingrelated pages 182, and dividing a room 174 into sections withoutimposing new security. The Domino equivalent is Notes folder or view206, and Notes folders 206 have three functions. For the user, theyprovide a logical grouping of related documents. This makes it easierfor the user to find documents, and allows people with a shared interestto work an area of a QuickPlace. The other way of using folders is inthe user interface, or “User” folders. Within user folders there areseven different types:

[0110] 1. Standard List

[0111] 2. Headline

[0112] 3. Slide Show

[0113] 4. Response List

[0114] 5. Ordered List

[0115] 6. Table Of Contents

[0116] 7. Index

[0117] Folder types 1 to 5 are all available as styles for new, customfolders. From the a site manager's perspective, a Folder allows aQuickPlace to be divided into areas for separate groups of people,without having to be concerned about access control which would benecessary if a Subroom 194 were used.

[0118] Fields include the following:

[0119] “h_LastAttachmentDirectory”: used when getting attachments. Thisfield enables users to quickly upload attachments. For example, eachtime a Layout file is uploaded, QuickPlace knows where to go looking forthe file. This path information is sourced from this field.

[0120] “h_DirtyAesthetics Number”: indicates which items should bechecked (once a part of the aesthetics has been tweaked, a check markindicates that the part has been changed).

[0121] h_AreaHasAesthetics: indicates if a Room has its own aestheticsettings enabled. If the field value is “1” the Room has had theaesthetics tweaked.

[0122] The third way that folders 176 are used is to allow developers tolocate elements in a QuickPlace. To a developer, folders are indexesthat allow look ups, therefore giving programmatic access to elements.

[0123] When any page renders in a Browser, the time it takes to renderis directly dependent on the amount of information to be downloaded. Theamount of information required to render a Folder is less than for aPage. When Pages appear in Edit mode, there is yet more informationrequired to render it. Therefore, the quickest load time for aQuickPlace by first using a folder 176 as the first page the user seeswhen upon selecting a place. Once users have visited a folder 176, asubset of the resources used to render a page 182 will already have beendownloaded. The folders used by developers are slightly different tothan the folders users would use. The h_Index lists the published pagesin the Place and appears as the standard index of a Place, and the h_TOCis the table of contents list.

[0124] Some of the folders in look ups by developers are set forth inTable 5. TABLE 5 VIEWS USED TO REFERENCE OBJECTS View Name Descriptionh_Index Provides a list of all published Pages in a Room, listed byh_UNID, the unique identifier for a Page. Lists all published items in aRoom, this not only includes Pages but all of the Objects in a Place.For example, Pages, PlaceBots, Fields, Skins and Forms. h_QDK EveryDesign Note in a Place. The h_QDK view contains a form formula to opendifferent documents using different forms. For example: If the field“h_Type” is “0” then use the form named “h_Page”. The result of thisform formula is that the QDK view allows developers to inspect theproperties of some Design Notes. The supported types are: “h_Page”,“h_Folder”, “h_Room”, “h_SubRoom”, “h_Error” and “h_RoomType”. h_TOCList of all items displayed in the Table Of Contents. Items must havethe “h_IsInTOC” field with a value of “1” and be published with noreplication-save conflict. (All) Every item in the Room. Sorted by theh_Name field: the readable name of the item. For example “Welcome”,representing the default Welcome page.

[0125] The Place Object in PlaceBots: Internally, default QuickPlaceFolders have readable titles. For example the response folderdiscussion” has the internal name of “h_Discussion” in the “h_SysName”field. A new response list style folder is called “SchwatzRaum” (whichmeans “chat room” in German). The internal name of the SchwatzRaumFolder is: “h_F49791727035ACD1C12569510063087C” (which means“h_F49791727035ACD1C12569510063087C” in German). This unique identifiercan be used in PlaceBots to locate the Folder. A lookup can be done inthe “h_Folders” view of a QuickPlace to find the readable name of thefolder. Another solution is to retrieve the name of the field byaccessing the value in the h_SysName field. The Table of contents andthe Index are special user Folders 176. Only one TOC and one h_Indexexists per Room 174 or Subroom 194. They exist from the moment the Placeor Room is instantiate, and change them.

Folder Fields

[0126] The following Fields are used to define data notes that render asFolders. Folders exist in a visible form within a QuickPlace. In otherwords they can be viewed by opening the NSF file in the Notes Client orDomino Designer. In conjunction with this view, a data note exists,providing information about that Domino View or Folder. Table 6 liststhe fields are contained in the data note and provide information aboutthe Domino View or Folder. TABLE 6 FIELDS USED TO DEFINE FOLDERS FieldName Description h_FolderStyle When creating a new folder, one is giventhe choice to create a new folder based on a number of templates. Thisfield denotes which type of folder has been created. “1” = Standard List“3” = Headline “4” = Slide Show “5” = Response List “7” = Ordered Listh_FolderStorage The “internal” name of the folder, in other words, thename by which it is known to the system. The value of this field is usedin documents to tell QuickPlace in which folder it should be used.h_CanAddPages When creating a new folder, the manger is presented withthe options, to the question “Who can add pages to this folder?”. Ifonly managers is chosen the value of “0” is written to this field. Thedefault is “” which means all authors can add pages to this folder.

Form Object

[0127] A form object 178 is a document used to create new QuickPlacecontent. The Domino equivalent is a data note of type “h_Form”. Formobject 178 is a resource used to create, manage and display content,therefore defining the schema of the application. Forms contain fieldsto hold data, therefore creating and displaying content. Forms can alsocontain scripts within them to provide logic within the Page. Forexample, a form can contain form validation to make sure that a fieldcontains only numbers. Forms can also initiate processes outside thepage. This is done by creating a PlaceBot 184 and associating thePlaceBot with a Form 178. PlaceBots 184 are not contained by the Formbut there is a association between them.

[0128] Forms are created with the Domino Form “h_PageUI” with the fieldh_Type set to “h_Form”. New forms 178 with custom structure and logiccan be created by room managers.

Form Fields

[0129] Table 7 sets forth the fields 180 used to define the structure ofa form 178. TABLE 7 FIELDS USED TO DEFINE FORMS Field Name Descriptionh_FormDescription The content of this field appears as the descriptionof the form appearing in the “New” page. h_WorkflowType Allows 1-4approvers and some other h_ApprovalCycle options. This is normally setto “h_Standard”. h_EditorInChief Allows 1 approver and fewer options.h_MultipleEditors By setting this field, all members of QP to edit pagescreated with this form. h_Standard None of the above. h_SetPageComponentsView Should = h_FieldDefinitions

Field Object

[0130] Field object 180 is used to construct (HTML formatted) inputfields in forms 178. The Domino equivalent is a Data note of type“h_Field”. Fields are constructed from the Domino Form “h_PageUI” with athe field h_Type set to “h_Field”.

[0131] QuickPlace field object 180 defines the structure of thecontainer, not the content. The values contained in a page 182 arecontained by the page, not the fields 180. The h_FieldType attribute toa field 180 determines what sort of field it is. This determines whatthe field will do when it is rendered in a browser. For example, a field180 of type h_DateControl will provide the user with a date pickerwidget.

[0132] Domino fields are used to define the attributes of QuickPlacefields 180 are set forth in Table 8. QuickPlace fields 180 are drawn tothe screen as HTML, they are not created by a Domino Field in a DominoForm. TABLE 8 FIELDS USED TO DEFINE FIELDS Field Name Descriptionh_IsUser Defined h_True means this is a custom form h_PublishInFolderUNID of the folder +“|” + h_FolderStorage name of the folder h_Name“Import” and is related to the h_SystemName field which often has asimilar value such as “h_Import”. h_FieldLabel Instructional informationthat might be useful for someone editing this field. Similar to theStatic h_FieldType. Containing information to help the user, but onlydisplayed in edit mode. “For example: <script> (h_CurrentSkinType ==‘h_Edit’ ) ?”“: C (self, ‘Note: Clicking on the title of this page inits folder or in the sidebar will open the page that it points to. Toedit the page again later, click its title in the Index.’) ;</script>”h_ContainerUNID The UNID of the Form which contains this field.QuickPlace uses a Design Note to create forms, each of these having aninternal name. The h_ContainerUNID contains the internal name of one ofthese QuickPlace Forms. h_FieldType There are many different types ofFields. The following types are listed as examples to help understandhow Fields work in general. “h_Attachments”= Enables the attaching offiles. “h_CalendarControl”= Includes date and time controls and aduration field “h_DateControl”= Date field with date picker widget“h_DateTime”= Contains Date and Time information. “h_DocAuthor”=Contains a Domino Heirachical name of the original Author of theDocument. “h_DocCreated”= Creation date of the page. “h_DocModified”=Modified date of the page. “h_DocSize”= Size of the page. “h_NamePopup”=Select listing members of the QuickPlace “h_RichText”= Rich text field.Allowing editing via the rich text editor applet. “h_Serial”= A uniquenumber to identify the document. “h_Static”= Static text, used toprovide information about the accompanying field. May also include linkto an image. “h_Subject”= The Documents subject. “h_TaskControl”= Usedin the Task form to insert the task control tool. “h_TextInput”= Simpletext equating to the “<input>” field in HTML. “h_TextPopup”= Text selectlist, equating to the “<select><option>”in HTML. “h_TimeControl”= Selectlists for hours, minutes, AM/PM. “h_CalendarControl”= Field containingcontrol tool used in the calendar field. “h_CreateMSExcel”= Fieldenabling the upload of Excel documents. “h_CreateMSPowerPoint”= Fieldenabling the upload of PowerPoint documents. “h_CreateMSWord”= Fieldenabling the upload of Word documents. “h_Import”= Field enabling theupload of imported documents such as HTML. “h_MultipleImport”= Fieldenabling the upload of multiple documents, such as a series of HTMLdocuments. “h_NotifyIndicator”= Field indicating if members should benotified of the creation of content or their inclusion in theContacts1.nsf.

Page Object

[0133] Page object 182 is a basic building block for content. The Dominoequivalent is a data note, form and subform. Pages form the basic unitsof content, relying on the structure of QuickPlace to create, manage andrender them in a Web browser. It differentiates structure and contentcleanly. Notes structural elements such as Forms Views and so on providestructure, whereas Notes Documents provide pure data content. In theDomino environment the division between structure and content becomesblurred. This is because when the data in a document is beingrepresented in a Web browser, it is possible to use the data to formatitself using HTML. The data is able to start defining structure bycreating HTML links, tables, references to images and so on. In theQuickPlace OM, the same is true. Pages can be created in a number ofways. Table 9 sets forth the fields used for defining page objects.TABLE 9 FIELDS DEFINING PAGE OBJECTS h_NotInSearch Having the value of“1” will exclude the field from being included in a full text search.This allows functional content in fields such as JavaScript or statictext to evade returning a hit during searching. h_Position Indicates thefields position of appearance in a form. Typically numbers such as 100are used. h_FieldFormat “h_FieldFormat” indicates formatting options,“h_All” “h_BannerOptional” “h_BannerRequired” h_BannerRequired Alwaysdisplay subject as a banner at top of page h_BannerOptional Allow userto choose banner or not h_NoBanner Do not display the subject on thepage h_FieldIsRequired 1 = The field is required and the user will beprompted if they do not fill it out.

Page Fields

[0134] Page Object in LotusScript and JavaScript: developers wanting tocustomize pages 182 will generally want to manipulate the page's field180 values. Fields existing in a Page are generally rendered to the HTMLdocument in the background as JavaScript variables. They are thenvisibly rendered via document.write( ) functions. If a field exists, itcan be accessed in the browser via a variable with the same name as thefield.

[0135] The PageBody Field holds the main content or “body” of the page.TABLE 10 FIELDS USED TO DEFINE QUICKPLACE PAGES Field Name Descriptionh_Form The QuickPlace form used to create this page. This is not theDomino “Form” field which denotes which form Domino links the file to.The Domino “Form” field will contain “h_PageUI” for virtually allobjects in a QuickPlace. h_PageType This field is set to null when thedocument is a visible document. Only when the object is in design modedo the other values appear: “h_Response” the document is a response to atopic document. This value is only valid in response folders.“h_Revision” this means that the document is being revised, and is notavailable for public access. “h_Mail” means that the document is a maildocument, being either sent or received by QuickPlace. h_Originator Thecreator of this page. This field contains a full hierarchical name, forexample: “CN=David Wyss/OU= QuickPlaceName/OU= QP/O= ServerName”. Allusers have the second OU part of the name set to QP. This is done sothat when QuickPlace is used on an Overlay server (QuickPlace and Dominotogether) QuickPlace can avoid conflicts between Domino registered usersand QuickPlace users. h_NameIsBanner Denotes if the page's name shouldbe displayed as a banner. If it is to be displayed as a banner, thisfield contains the value “1”. Setting this field is done when the userclicks on the “Show the title, author and date on page?” checkbox.

[0136] The JavaScript “document.write” method is used when using thePageBody to write out HTML content in a QuickPlace page. This field canbe printed onto the screen via a document.write(PageBody) method calledin a QuickPlace document. The following is an example of using thistechnique.

[0137] In a Placebot, write the contents of the document into thePageBody field. If the PlaceBot has not run, or not run correctly, thePageBody field will be empty. If the document is displayed in a formwhere the PageBody JavaScript variable is not declared, an error will bereported. To avoid an error through an undefined variable, use the“typeof” operator. This test assigns a message string to thesPageBodyMessage variable and prints that instead of the PageBody. Tocustomize this message, the text in quotes on the PageBodyMessage lineis changed. Then the following is included in the HTML document: <scriptlanguage=JavaScript> if ( typeof( PageBody ) == “undefined” ) { varsPageBodyMessage = ‘Run the Mapperizer PlaceBot to see a site map here.. .’; document.write( sPageBodyMessage ) } else{ document.write(PageBody ) } </script>

[0138] Page Object in HTML: some of the most commonly referencedJavaScript variables in Pages are set forth in Table 11. TABLE 11COMMONLY USED JAVASCRIPT VARIABLES IN PAGES Field Name Data Type,Description h_Name String, readable name of the Page PageBody String,content of the page. h_SystemName String, the internal name of a page.For example, ‘h_Welcome’ h_Originator String, full Notes format name ofthe document creator For example: ‘CN=AnnaRath/OU=Millennia/OU=QP/O=Server’ ; h_IsPublished String, numberrepresenting “1” for published or “0“ for not published.h_LastTimePutAway String, representing the date and time the Page waslast saved ‘09/03/2000 07:54:08 PM’ Form String, Domino Form name usedto create the Page. Most documents in a QuickPlace are created with the‘h_PageUI’ Form. The value that differentiates fields is the h_Typefield HTTP_COOKIE String, all cookies available to that Page HTTP_HOSTString, name of the server. For example ‘millennia.com’ HTTP_REFERERPage used to send the user to this page. HTTP_USER_AGENT String, browserused to access the current Page. For example: ‘Mozilla/4.0 (compatible;MSIE 5.0; Windows NT; DigExt)’ REMOTE_USER String, full name of theperson reading the Page, for example: ‘CN=DougMudge/OU=Millennia/OU=QP/O=Server’ ; Server_Name String, the servername, for example: ‘dwyss.lotus.com’ h_DocSize Integer, size of thepage, for example: 4705 h_ModifiedDate String, date and time the pagewas last saved, for example: ‘09/03/2000 07:54:05 PM’

[0139] Using Notes name format in pages can be done with the followingJavaScript Function: function fnGetSimpleName(sTxt) { iTxtStart =sTxt.indexOf(‘=’); iTxtStart++; iTxtEnd = sTxt.indexOf(‘/’); if(iTxtEnd== −1) iTxtEnd = sTxt.length; sTxt = sTxt.substr(iTxtStart,iTxtEnd −iTxtStart); return sTxt; }; return fnGetSimpleName(‘CN=Doug Mudge/OU=Millennia/OU= QP/O=Server’)

[0140] This JavaScript will return the string “Doug Mudge”

PlaceBot Object

[0141] A PlaceBot object 184 is a Java or LotusScript Domino Agent, usedto create or manipulate QuickPlace objects automatically. DominoEquivalent: Domino Agent.

[0142] For Java and LotusScript programmers, the PlaceBot is the mainway of implementing sophisticated functionality to a QuickPlace. Withinthe bounds of an HTML document, industry standard authoring tools suchas HTML are used. To make links between Objects and manipulateQuickPlace Objects, PlaceBots are used.

Theme Object

[0143] A theme object 186 is a group of files which defines the look andfeel of a QuickPlace. The Domino equivalent is a group of data notes.

[0144] Themes are a mechanism for determining the layout and appearanceof a QuickPlace. They also help introduce functionality, and althoughnot their primary function, some content. There are two types of themes186 in QuickPlace. User defined or custom themes” and default Themes.

Subroom Theme Object

[0145] The subroom theme object 188 is a subset of themes 186 in aQuickPlace. The Domino equivalent is a data note. By default, subrooms194 inherit the theme 186 being used by the (main) room 174. Only whenthe theme being used in the subroom 194 has been modified, does it actindependently of the room 174.

Member Object

[0146] A member object 190 is a data note listing a user in theContacts1.nsf. The Domino equivalent is a note in contacts1.nsf. Members190 are records specifying user-access to a room 174. A member notecontains information about a team member of a QuickPlace. In addition tothis data, the member must be listed in the access control list (ACL) ofmain.nsf and in a group in names.nsf to pass authentication.

[0147] Table 12 sets forth the fields 180 used to define members 190.TABLE 12 FIELDS USED TO DEFINE MEMBERS Field Name Description h_PasswordThis member's password. Encrypted with @Password h_FirstName Thismember's first name h_LastName This member's last name h_PhoneNumberThis member's phone number h_EmailAddress This member's email address

[0148] Table 13 sets forth the fields 180 used to define Groups. TABLE13 FIELDS USED TO DEFINE GROUPS Field Name Description h_Members Thelist of members who belong to this group, listed in full heirachicalformat.

Subroom Member Object

[0149] A subroom member object 192 is a subset of entries in the mainroom 174 of a QuickPlace. The Domino equivalent is a Data note incontacts1.nsf. Subroom member 192 has a similar structure to a roommember 174, but specifies user-access to the SubRoom. These SubRoommembers 192 are a subset of the (main) room 174 members list. This meansthat to grant access to new users, they must first be added as readers(or greater) in the main room 174.

SubRoom Object

[0150] A subroom object 194 is a container within a QuickPlace withseparate security to main Room. The Domino equivalent is an NSFDatabase. Subrooms 194 are similar in structure to Rooms and are used tocreate discreet meeting places for subset of the Members in a Place.

[0151] The subroom object in PlaceBots: To locate a room, look in themain QuickPlace Server directory, then look into the Place Object (adirectory bearing the name of the QuickPlace). The Subroom will be named“PageLibrary” followed by a 16 digit hexadecimal time stamp number ,such as “0123456789ABCDEF” then the “.nsf” suffix. By way of example,the following script looks for a Subroom to the Millennia place: SetdirPlace = New NotesDbDirectory( g_sServerName ) Set ndbPlace =dirPlace.GetFirstDatabase( DATABASE ) sNdbPlaceFilepath =ndbPlace.FilePath If Instr(1, Lcase( sNdbPlaceFilepath ), |QuickPlace\millennia\pagelibrary| ) Then

[0152] The Instr method has been used to look for this database, down tothe PageLibrary part of the string, because it is difficult to know whatthe 16 digit number will be.

[0153] Page Object in HTML: To create URLs to reference Subrooms, theURL is built in the Main Room using either the “h_Area” view or the“h_TOC” view to create the path. This View contains the “h_LocDbName”field as the first sorted column.

Resources Object

[0154] A resources object(not shown) is database of shared resources,having as its Domino equivalent NSF Database. It serves as a centralizedcontainer for resources required in all QuickPlaces on a server. Images,layout files and fonts are stored in this database. For exampleresources such as the button that appears beside the simple search image“Go.gif” is stored in this database. The easiest way to find items inthis database is by scrolling through the h_SystemNameView. A dummy formmay be used to view such elements.

Common QuickPlace Object Fields

[0155] In Tables 14 through 18, fields and JavaScript variables in theh_PageUI form are set forth. These include general fields which can becustomized for each layout, fields to define publishing status, fieldsfor defining locations, fields for defining security, fields fordefining workflow status, fields for defining calendars, respectively.

[0156] System objects have special meaning depending on the type ofobject. The following tables describe fields in various QuickPlaceObject types. TABLE 15 FIELDS USED TO DEFINE PUBLISHING Field NameDescription h_IsPublished 1 = This object is currently publishedh_IsHidden 1 = This object is not shown to the user h_SetReadScene Thename of the default scene (subform) to use when viewing this objecth_SetEditScene The name of the default scene (subform) to use whenediting this object h_PublishedVersionUNID If this object is beingedited and the current object is the draft version, the UNID of thepublished version of this object. h_DraftVersionUNID It this object isbeing edited and the current object is the published version, the UNIDof the draft version of this object. h_LastTimePutAway The last timethat this object was changed: Published or Saved under construction.

[0157] TABLE 16 FIELDS USED TO DEFINE FOLDERS LOCATION Field NameDescription h_FolderUNID The name or UNID of the Notes Folder where thispage resides. h_IsInToc 1 = This object is shown in the Table ofContents (sidebar). h_CurrentPosition The position of this object withrespect to other objects in the collection. h_SetParentUNID If this is achild or response object, the UNID of the parent object.

[0158] TABLE 17 FIELDS USED TO DEFINE SECURITY Field Name Descriptionh_Readers If this object is protected from readership, the list ofnames, groups, and or roles that can read this object. h_Authors If thisobject is protected from authorship, the list of names, groups, and orroles that can author this object.

[0159] TABLE 18 FIELDS USED TO DEFINE WORKFLOW Field Name Descriptionh_(—WorkflowStage) Indicates the status of the document within theworkflow. h_New = Created but not yet submitted for approval h_Submitted= Has been submitted and it is being reviewed h_Published = Has beenapproved h_Rejected = Has been rejected h_SetNextStageUser The name ofthe next person in the workflow cycle. h_CurrentApprover A numberdesignating the current person in the workflow cycle. 0 means theOriginator. The list of persons associated with the workflow cycle isstored in the form used to create this page.

Customizing the Object Model

[0160] While much of a QuickPlace can be customized via a browser, thereare some parts of QuickPlace which can only be customized using a NotesClient and or the Domino Designer.

[0161] Changes that can be made via a browser, using Web authoring toolssuch as an HTML editor relate more to the user interface. For example,editing a skin can be done using an HTML editor. Changes made toQuickPlace Objects are done through the Notes client and in DominoDesigner. For example, inspecting and customizing the images appearingin default QuickPlace pages must be done via the Notes Client.

[0162] In order to implement PlaceBots (Bots) in a QuickPlace it iscumbersome to test the Bots only in QuickPlace, especially whenuploading the PlaceBots each time over the Internet. The Notes Clientand Domino Designer may be used as a local test environment, thusallowing changes on the Bots, as well as providing an integrateddevelopment environment, with help files and debugging mechanisms. Whenfinished creating and testing the Bot in the Designer, it may beuploaded to the QuickPlace and testing finished there. Using the NotesClient and the Domino Designer also allows creation of new objects in aQuickPlace. Taking this a step further, it is possible to redefine theobject model, by adding features to a standard QuickPlace. Core Dominotechnology is a proven platform, providing many powerful tools for aproject. For developers who are not familiar with Domino, they can use awide range of development skills such as HTML, XML, DHTML, JavaScript,Image manipulation, Java and C++. Domino developers can also leverageDomino development skills, but either way it is possible to createrobust web-based applications, without having to re-invent the wheel.

QuickPlace Object Model and HTML: Building URLs

[0163] Building URLs in a QuickPlace is an important issue, due to thefact that QuickPlace is a browser based application. UnderstandingQuickPlace URLs is also a good way of understanding the object hierarchyin QuickPlace. The relationship between URLs and the QuickPlace Objectmodel flows in both directions. Understanding the structure of URLshelps understanding the QuickPlace Object model. Conversely, once theQuickPlace object model is understood, how to use URLs to manipulate aQuickPlace becomes apparent.

[0164] URLs in QuickPlace use the same structure as in Domino. DominoURLs allow locating documents by using the key value of the first sortedcolumn of a view, then generate a URL to link to a document using thiskey. Once the documents are located, they are not always opened in thebrowser. Sometimes they are read and their contents exposed and used byother objects.

[0165] An example of locating a file without opening it is when aQuickPlace skin accesses a JavaScript LSS file. The user never sees theLSS page, but its contents are used by the visible page to renderobjects and perform functions. To locate a document in Domino, theinitial part of the URL is pointed to the host server, then the databasecontaining the required document. The next part of the URL must point toa view with the first column specified as being sorted. This first,sorted column becomes the key column. Then a URL is used to open thedocument, as in the following example:

[0166] http://Host/Database/View/Key?DominoURLCommand

[0167] Where:

[0168] View: is the name of the view. To access a document regardless ofthe view, substitute a zero (0) for the view name and specify thedocument by its universal ID.

[0169] Key: is the string, or key, that appears in the first sorted orcategorized column of the view. If the key has spaces in it, substitutethese for plus signs when creating a URL.

[0170] This syntax is used to open, edit, or delete documents and toopen attached files. Domino returns the first document in the view whosecolumn key exactly matches the Key. There may be more than one matchingdocument; Domino always returns the first match. The key must matchcompletely for Domino to return the document. However, the match is notcase-sensitive or accent-sensitive.

[0171] DominoURLCommand: Is the instruction to Domino of what to do withthe file when found. For example, ?OpenDocument, ?EditDocument and?DeleteDocument.

[0172] If this DominoURLCommand is omitted a default will besubstituted. For example, in the previous URL if the OpenDocumentargument is omitted in a URL command the document will still openbecause the command is automatically interpreted as OpenDocument.

[0173] The structure of URLs in a QuickPlace is the same as in anyDomino database. QuickPlace objects are quite often referred to viarelative URLs. For example, to reference a page that has been created,the following syntax is used: .

[0174] . . . / . . . /h_View/PageName?OpenDocument

[0175] Where: “ . . . / . . . ” section at the front of the URL createsa relative URL, is interpreted by the Domino server as referring to theparent objects of the current object (h_View and PageName).

[0176] Examples:

[0177]http://www.mercury.com/register.nsf/Registered+Users/Jay+Street?OpenDocument

[0178]http://www.mercury.com/register.nsf/0/466c5172561e1c5c852566c2005f6bbb?OpenDocument

[0179] Many QuickPlace objects in QuickPlace have internal namesbeginning with “h_”. This is refers to the internal name of QuickPlacewhich is “Haiku”. To reference images, JavaScript library files or filesother than pages, the following syntax can be used . . . .

[0180] . . . / . . . Index/Document+Name/$File/Imagename.gif?

[0181] OpenElement

[0182] Or . . .

[0183] . . . / . . . /h_Index/Document+Name/$File/ScriptLibName.js?OpenElement

[0184] Many objects in QuickPlace can be located via the h_Index View.It contains links to many of the published objects in a QuickPlace. Whenreferencing a JavaScript file the ?OpenElement argument is used. This isto tell Domino that the file being accessed is not a page to open, whichis the default action.

Building URLS: Referencing Images

[0185] The following section deals with the issue of using images inQuickPlace. Referring to FIG. 6, due to the fact that QuickPlace is aplatform for creating Websites, images 242, 252 form a vital part of theQuickPlace object model. QuickPlace's structure provides many ways toinclude images in pages. For example when creating skin files 260, theimages 242 are automatically uploaded into the QuickPlace 172 when theskin file 230 is uploaded.

[0186] Described hereafter are techniques involved for fully automatedimporting procedures within QuickPlace. An example of an automatedimporting would be when creating and uploading a Microsoft Word file250. When this is done the images are imported without anyinterventions.

[0187] There are also instances where some developer intervention isrequired, such as when creating a Skin file 230, or writing animportable HTML file 254, or referencing files required to display theresults of a PlaceBot and so on.

[0188] Creating skin files are fully described hereafter in connectionwith themes.

[0189] Three methods are used for importing images. These are:

[0190] Method 1: Provide a URL to an image and let QuickPlace upload theimage. This method is used when creating skins and imported HTMLdocuments that do not use JavaScript to reference images.

[0191] Method 2: Create a URL, have QuickPlace upload it, then referenceit using HTML or JavaScript. This method is used when rendering imageusing JavaScript.

[0192] Method 3: Manually upload images into a document and referencethem via URLs from a separate document. This method is used if the imageis very large and it desired to have the user's browsers be able tocache the image; or if the image is referenced within a JavaScriptfunction (QuickPlace does not import images when they appear withinJavaScripts); or the image is referenced within a PlaceBot which createsnew pages.

[0193] The solutions selected for a particular application may be amixture of all three. For example:

[0194] Referencing Images: Method 1. Create a Skin file or HTML importedpage and let QuickPlace import it. This works in skins and importedHTML, and is the easiest way of importing images into Skins and HTMLPages. When a valid link to an image within an HTML page or a Skin iscreated, QuickPlace will upload it automatically when the Skin or HTMLfile is uploaded. For this to work, a valid URL must be created. Thismay be done as follows:

[0195] In the skin file or importable HTML document, download all theimages in a local directory. The simplest way to do this is to save themin the same folder as the skin or HTML page. For example, the URL for anHTML file may be:

[0196] <img src=“transparent.gif” width=5 height=1 alt=“ ” border=“0”>

[0197] Referencing Images: Method 2. Prompt QuickPlace to import thefile into the current document, then reference the file usingJavaScript. This method is the most efficient method to use whenreferencing an image via a JavaScript function (in a Skin for example)or when updating a document via a PlaceBot.

[0198] To force QuickPlace to upload the image, a valid URL to the imageat the top of the page must be created. By rendering it in a 1 pixel×1pixel size, making it too small to see, the image is still uploaded, butthe user will not notice the image. The images must also be named whenthey appear in their 1×1 pixel format. By using this name, the image ismade available to JavaScripts below it on the page. This is done byadding the image to the source code near the top of the page. To forceQuickPlace to upload the image, it is rendered in HTML format, then theuploaded image referenced in the JavaScript.

Overview: PlaceBots

[0199] In accordance with a preferred embodiment of the invention,PlaceBots are provided for sharing documents and holding discussionswith team members, for adding program logic to a place itself to performactions which can be triggered as the result of submitting a form orscheduled to run at a particular time. For example, every three hours aPlaceBot program may execute to browse customer complaints, parse forspecific key words, and move documents to related specific folders. Or,a PlaceBot may be written to perform actions responsive to customercomplaint.

[0200] A PlaceBot is implemented by an agent. For example, a browseruser creates a reviewer, sends the invitation, adds logic—using Javacode. Then, the Java code is attached to a QuickPlace by dragging anddropping the code into a QP form. The QP server receives and compilesthe code into a notes agent. Thus, code is integrated into a QuickPlaceusing a browser. The QuickPlace server compiles and link edits the codeso that every time a reviewer is created that code gets run.

Overview: Imported HTML Forms

[0201] In accordance with a further embodiment of the invention, areview form may be designed in HTML separate from QuickPlace. Theresulting form is then dragged and dropped into QuickPlace, whichcreates a form for it. This is done by creating a field for each htmltag. Thus, each HTML field is parsed to create a correspondingQuickPlace field.

[0202] For HTML files, the HTML file is parsed, the linked images found,and the URLs processed. The original file, linked files, and theresulting HTML are then saved on the page with the HTML displayed inread mode, and the orginal file in edit mode.

Overview: MicroSoft Office Based Forms

[0203] In accordance with a further embodiment of the invention, anexisting Excel spreadsheet or Word document in a power pointpresentation, for example, is used as a template, dragged and dropped bythe browser user into a QuickPlace, which then creates from it aQuickPlace form. Thereafter, users can create new MicroSoft documentsusing the QuickPlace form.

[0204] For Office documents, the MicroSoft office native mechanism isused to convert the page to HTML. The original file and the resultingHTML are then saved on the converted page, with the HTML displayed inread mode, and the original file in edit mode.

Overview: Forms and Task Fields

[0205] In accordance with a further embodiment of the invention, a webbrowser way of creating and designing forms is provided. A browser usermay, using QuickPlace and interacting with the QuickPlace userinterface, create a form as an object of the QuickPlace and select andcreate fields for that form.

Overview: In Place Editing

[0206] In accordance with a further embodiment of the invention, abrowser user can create MicroSoft Office documents from withinQuickPlace, such as a new Excel web sheet. QuickPlace will automaticallylaunch Excel, and when Excel is closed, QuickPlace will bring in theExcel spread sheet.

Using HTML

[0207] Because the Page, ListFolder, and Slideshow layouts share so manycommon components, one HTML file that applies styles to these threelayouts can be created. HTML for the Slideshow Folder is created, whichcontains the superset of components used in the three layouts. Tocontrol how the non-applicable components display for a layout—forexample, the Jump component for the Page layout, and theAuthorAndModified and Revision components for the ListFolder—variousresults are achieved by setting the emptyFormat, prefixHTML, andpostfixHTML parameters.

[0208] For example, to have the empty components occupy the samevertical space as they do when in use, set the parameter as follows:

[0209] emptyFormat=“&nbsp;”

[0210] By placing each component in a separate table row, thecomponent's row “collapse” when it is empty, so that it occupies nospace. Given that the prefixHTML and postfixHTML parameters are notoutput when the component is empty, these parameters can be used toprovide the following table structure: emptyFormat =“” prefixHTML =“&lttr>&lttd>” postfixHTML = “</td></tr>”

Style Sheet Selectors in QuickPlace

[0211] Referring to FIG. 7, a typical QuickPlace user interface 370includes a sidebar (TOC) 372, page title 374, author and modified field376, actions bar 378, logo 380, path 382, page content 400, and actionsbuttons, such as quick search 384, advanced search 386, whatsnew 388,chat 390, notify 392, print 394, tutorial 396 and help 398. Each ofthese is customized by using tags or selectors which deal with borders,background, text, and so forth, in accordance with a style sheet.

[0212] A standard default stylesheet is always output with any theme, sothat one need only to specify the selectors that are to be changed.Undefined properties will fall back to those defined in the defaultstylesheet.

[0213] Tables 19 through 27 describe Style Sheet (CSS) Selectors. TABLE19 Tag Styles CSS Selector Description and Notes body, td Default textstyle. Note: specify both tags to set the default text style. a Anchorstyle. Note: see also several other more specific anchor styles, below.a:hover Default style of anchors when mouse is over the anchor. Note: IEonly. form Default style of forms. Note: The margin-bottom property isset to 0px by default to remove unwanted whitespace from the bottom ofall forms.

[0214] TABLE 20 Page Background CSS Selector Description and Notes.h-page-bg Page background. Note: class assigned to body tag of allpages. For IE only, the margin properties can be set to control the pagemargin.

[0215] TABLE 21 Folders, What's New, Search Results, Tasks (list view)CSS Selector Description and Notes .h-folderBanner-bg Background offolder banner. Note 1. .h-folderBanner-text Text in folder banner.Note 1. a.h-folderBanner-text Anchors in folder banner. Note 1..h-folderBannerSelected-text Text of selected (“current”) item in folderbanner. Note 1. a.h-folderBannerSelected-text Selected anchor in folderbanner. Note 1. .h-folderItem-bg Background of items listed in folder.Note 1. .h-folderItem-text Text of items listed in folder. Note 1.a.h-folderItem-text Anchor listed in folder. Note 1..h-folderConpact-text Compact text of item listed in folder. Note 1..h-folderAbstract-text Abstract text of item listed in folder..h-folderBar-bg Background of bar to left of a thread. .h-folder-dl {Indentation of responses in response folder. Note: by default, themargin-bottom property is set to 0px to remove unwanted whitespace belowindented items in response folders. .h-folderInterspace-bg { }Background color of vertical space between responses..h-folderInterspace-text { Height of vertical space between responses.Note: use font-size to set the height. .h-folderSpace-text { Height ofvertical space between threads. Note: use font-size to set the height.

[0216] TABLE 22 Tasks (timeline view) CSS Selector Description and Notes.h-tasksBannerNow-textbg Highlighted current date in Tasks banner..h-tasksItem-bg Background of items listed in Tasks..h-tasksItemTimeline-bg Highlighted period of a task..h-tasksItemMilestone-bg Highlighted period of a milestone

[0217] TABLE 23 Calendar CSS Selector Description and Notes.h-calendarLabel-text Date label. .h-calendarLabelselected.-text Datelabel (today's date) .h-calendarItemOther-bg Background of day not incurrent month. .h-calendarItemToday-bg Background of today's date.

[0218] TABLE 24 Text and fields in Page layout CSS Selector Descriptionand Notes .h-field-text, .h-field-text td Style of the text value of afield. Note: use this exact selector, as shown, to style field textdistinctly from regular page content. .h-pageSmall-text “Smallprint”page text. .h-fieldSmall-text “Smallprint” text content of fields..h-fieldHeader-bgtext Field header. .h-fieldOrder-bgtext Number to theleft of the field header. .h-page-text a:visited Anchors inside thepageContent skin component which have been visited. Note: IE only.

[0219] TABLE 25 Edit Layout CSS Selector Description and Notes.h-fieldHeaderEdit-bgtext Field header .h-fieldEdit-text,.h-fieldEdit-text td Field description text. Note: use exact selector,as shown. .h-fieldOrderEdit-bgtext, div .h-fieldOrderEdit-bgtext tdNumber to the left of the field header. Note: use exact selector, asshown. All properties in this selector must be marked ! important totake effect. E.g., color: green! important. .h-fieldSmallEdit-text Smallfield text. Note: all properties in this selector must be marked!important to take effect. .h-fieldSpecialEdit-text Special field text.Note: used in Task Info field. All properties in this selector must bemarked! important to take effect.

[0220] TABLE 26 QuickSearch CSS Selector Description and Notes.h-searchField-text Style of the text field associated with thequickSearch skin component.

[0221] TABLE 27 Classes defined by the default theme The classes listedbelow are not built in to QuickPlace, but are defined by the defaulttheme's style sheet. (Custom themes are not required to use theseclasses, and are free to define any other classes as appropriate.)However if modifying the default theme, these classes can be modified toget a particular effect. CSS Selector Description and Notes .h-logo-textLogo text. .h-heading-textbg Heading about table of contents and toolsboxes. .h-sidebar-bg Background of table of contents and tool boxes..h-toc-text Text of item listed in table of contents..h-tocSelected-text Text of selected item listed in table of contents..h-nav-text Navigation link. .h-tool-text Tool link. .h-signIn-text SignIn link. .h-actionButtonBorder-bg Border of action button..h-actionButton-bg Background of action button. .h-actionButton-textText of action button. .h-actionSpace-text Space between action buttons..h-pageTitle-textbg Page title. .h-pageAuthorMod-text AuthorAndModifiedtext. .h-revision--text Revision link (draft I published)..h-revisionSelected-text Selected revision link .h-accent-bg Accentcolor. E.g., used in rule at bottom of page. .h-headlineFolderTab-bgBackground of unselected tab in headline folder..h-headlineFolderTab-text Text of unselected tab in headline folder..h-headlineFolderTabSelected-bg Background of selected tab in headlinefolder. .h-headlineFolderTabSelected-text Text of selected tab inheadline folder. .h-edit-bg Background of edit layout “docket”..h-actionButtonEdit-text Text of action button in edit layout..h-actionButtonBorderEdit-bg Border of action button in edit layout..h-actionButtonEdit-bg Background of action button in edit layout..h-shadow-bg Shadow. Note: used in sidebar and in edit layout “docket”shape. .h-shadowCorner-bg “Missing” corner of shadow area.

PlaceBots

[0222] A PlaceBot is a Domino agent, written either in Java orLotusScript, that automates a task. Using a PlaceBot (or “Bot”), one canaccess, process, and manage the data in a QuickPlace. For example, onemight use a PlaceBot to send E-mail to members of a QuickPlace thatnotifies them when a document of interest is edited. One can create aPlaceBot that runs when a form is submitted or on a scheduled basis. APlaceBot may also be run manually. A PlaceBots is created usingLotusScript or Java to manipulate the Domino back-end object classes.For complete documentation on the Domino Object Model and how to workwith objects using LotusScript or Java, see the Lotus Domino R5Programming Guide.

[0223] It is possible to write, debug, and compile Java code for aPlaceBot in a Java development tool, such as Symantec Visual Cafe. Onecan then import the java file, or compile and import a class or .jarfile. It is also possible to write Java or LotusScript code in anyeditor and import the resulting files into the QuickPlace. When JavaPlaceBots are uploaded, they are automatically compiled, and a syntaxcheck is done on them.

Triggering PlaceBots

[0224] QuickPlace has a page in the Customize area where settings tocontrol how and when the PlaceBot runs are specified. These settings aresimilar to the Domino Agent settings, but not the same.

[0225] There are two ways of triggering PlaceBots. Scheduled PlaceBots,triggered by a timer event or Form PlaceBots which are triggered by thecreation of documents, based on the form type.

Scheduled PlaceBots

[0226] Scheduled PlaceBots are processed by the agent manager, and havethe Access rights of the QuickPlace Manager.

Form PlaceBots

[0227] Form PlaceBots are triggered by the creation of a document basedon any of the user forms in a QuickPlace. For example, if a new HTMLform is created, one can specify that the Bot is to run on documentscreated with that form. If PlaceBots are triggered by document creation,they have the same access rights as the person who created the document.

[0228] The difference between PlaceBots and Domino Agents

[0229] PlaceBots are in effect, Domino agents. However, a PlaceBot isinstalled into a QuickPlace via the QuickPlace upload control. An agentis installed using the Domino Designer. Also, a PlaceBot can be createdin any text editor, then uploaded. Another advantage of PlaceBots overAgents is that they can be stored as small LSS, Java JAR or Class fileson a hard disk, and installed quickly on any QuickPlace, even withoutadministrative access to the server. Manager access to the QuickPlace isall that is required.

[0230] PlaceBot security

[0231] When PlaceBots are run on a scheduled basis, they inherit theaccess control of the server. When PlaceBots are run manually, they havethe access rights of the person triggering them. In other words, onemust have Manager access to create, edit, copy, delete, or run PlaceBotsmanually.

[0232] Write a PlaceBot

[0233] In the following example of how to write PlaceBots, a dummyQuickPlace is created using the Domino Designer, as follows:

[0234] 1. Create a QuickPlace.

[0235] 2. Create documents, folders, links, and so on that the Bot willbe referencing.

[0236] 3. Close down the QuickPlace server.

[0237] 4. Create a copy of the NSF file(s) that were created byQuickPlace. In most cases this will be the “main.nsf”.

[0238] 5. Open the NSF file in Domino Designer and start writing aDomino Agent.

[0239] 6. Test the PlaceBot in the NSF.

[0240] 7. Export the Agent and save java agents as a Java , JAR .Classor ZIP file. If writing a LotusScript file save it in .LSS format. Toexport a Java file, press the Export button in the Designers pane. Toexport a LotusScript file, right click on the designers pane and selectExport.

[0241] 8. Make sure the QuickPlace server is started and return to theoriginal QuickPlace.

[0242] 9. Go into Customize→PlaceBots then create and test yourPlaceBot.

[0243] 10. For small changes it is easier to open the LSS file in a texteditor, then copy the changes back into the original LotusScript Agent.For the more complex changes go back into the Domino Designer.

[0244] Java PlaceBots

[0245] Java PlaceBots accept file types .JAVA .CLASS and JAR. It ispossible to also upload multiple files. PlaceBots can be writen in atext editor, using QuickPlace as the test environment. It is possiblealso to use third party Java development tools, such as Visual Age forJava.

[0246] LotusScript PlaceBots

[0247] Creating PlaceBots using LotusScript is essentially the same aswriting an agent for a Domino application. There are two alternativesfor writing LotusScript (LSS) PlaceBots. It is possible to write LSSBots in a text editor and test the Bots in the QuickPlace. This sectionuses some examples of LotusScript that show the process of creating aPlaceBot and exposes the object model.

[0248] An exemplary PlaceBot has the following list of functionalfeatures:

[0249] Graphical display of folder/page relationships

[0250] Alphabetical list of pages

[0251] Theme like customizing of the map page

[0252] Easily modify the folder and page images

[0253] Full control over fonts, sizes, colors and so on

[0254] Ability to wrap the document in any HTML required

[0255] Selective page mapping—Pages and Links but not Room links

[0256] Map document could be switched off if decided by the Manager

[0257] Map document could appear wherever the Manager decided The mapdocument would be updated whenever a new Page document was added.

[0258] PlaceBot Description

[0259] Referring to FIG. 9 in connection with Tables 2201- 2225, anexemplary method for creating a PlaceBot will be described.

[0260] In step 402, variables relating to the session, the database andits major structures such as view and key documents are declared.

[0261] PlaceBot starts off by Dimming (declaring) the variables relatedto the session, the database and its major structures such as Views andkey documents. The Dims are typically divided into two groups; dims forNotes related objects, then the writing Dims, which are used in contentcreation, mostly via strings.

[0262] In step 404, documents related variables are set, for exampleusing a skin for the site map page.

[0263] This step, code for which is set forth in Table 28, sets thedocument related variables. These Sets are related to finding documents,working from the Database, down to the individual SiteMap document. Ifthe SiteMap page is not found in the QuickPlace then the Bot quits. Thisis to allow a bit of flexibility in the order in which the Bot isinstalled. Errors are not generated done out of order, delete the sitemap page or name the site map page wrongly. This approach also allowsuse of a skin for the Site Map page. The skin file is the SiteMap.htm.This HTML wraps the map, can be modified, place by place, without havingto change the Bot. In its current form, the SiteMap Bot and Pageseparate LotusScript and HTML scripting making the overall programmingof the Bot simpler. TABLE 28 SET DOCUMENT RELATED VARIABLES CODEsMapDocName = “SiteMap” Set ndb = ses.CurrentDatabase Set viewCurrent =ndb.getView( “h_Index” ) Set docReport = viewCurrent.GetDocumentByKey(sMapDocName ) If docReport Is Nothing Then CalllogAgent.LogAction(“Mapperizer: Document “ & sMapDocName & ” not found”)Exit Sub End If

[0264] In step 406, the table of contents (TOC) is found and set as aspecial view. TABLE 29 SET TOC AS SPECIAL VIEW Set viewTOC =ndb.getView(“h_Toc”)

[0265] In step 408, URLs referencing current QP documents and attachedimages are created.

[0266] The looping functions of Table 35 gets each element in theviewTOC then performs a number of calculations on that TOC element. SomeTOC elements may be views, in which case that “sub view” is stored inthe variable named viewCurrent. To start creating the URL strings foreach entry, the following dims and sets are made. The sDbPath now is astring formatted for use within a URL, in other words its backslashesare replaced by forward slashes. Ascii character 47 is a forward slash,and character 92 is a backslash. TABLE 30 CREATE URLS/ATTACHED IMAGESDim sFSlash As String Dim sBSlash As String Dim sDbLabel As String DimiSlashPos As Integer sDbPath = ndb.FilePath & “/” sFSlash$ = Chr(47)sBSlash$ = Chr(92) iSlashPos = Instr(1, sDbPath$, sBSlash$) WhileiSlashPos <> 0 Mid$(sDbPath$, iSlashPos, 1) = sFSlash$ iSlashPos =Instr(1, sDbPath$, sBSlash$) Wend

[0267] To introduce images onto the current page, a URL is created thatreferences the current QuickPlace document, then the images that areattached to it. These images are automatically uploaded when theSiteMap.htm file is uploaded. The URL uses a lookup in the h_Index inthe current QuickPlace, and references the name of this page, set in thevariable in sMapDocName. The h_Index is a view that allows one to lookup all documents in the QuickPlace using their ID. For example, to getan image:

[0268] <img src=“http://quickP.com/quickplace/MyPlace/Main.nsf/PageMap/$FILE/Page.gif?OpenElement”>

[0269] To simplify this, the same path structure is kept but maderelative:

[0270] <img src=“. . . / . . . /PageMap/$FILE/Page.gif?OpenElement”>

[0271] In the script of Table 31, the name of the PageMap document isreplaced by a variable. This is to make it easier to change the name ofthe file. The names of the GIF images names are hard coded. If thedeveloper wants to modify the SiteMap look, it is easier to just createa new image and save it with the same name. TABLE 31 TAG MAP HTML′writing sets sFolderImg = |<img src=. ./. ./h_index/| & sMapDocName &|/$FILE/Folder.gif?OpenELement border=0 width=20 height=13>| sPageImg =|<img src=. ./. ./h_index/| & sMapDocName & |/$FILE/Page.gif?OpenELementborder=0 width=13 height=13>| sPageSubImg = |<img src=. ./. ./h_index/|& sMapDocName & |/$FILE/PageSub.gif?OpenELement border=0 width=29height=13>| sIndentImg = |<img src=. ./. ./h_index/| & sMapDocName &|/$FILE/Indent.gif?OpenELement border=0 width=13 height=13>|sHeadingStyleTag = “<span class=h-mapHeading-text>” sStyleTag = “<spanclass=h-map-text>” sFolderStyleTag = “<span class=h-mapFolder-text>”sDetailStyleTag = “<span class=h-mapDetail-text>” sEndStyleTag =“</span>” sIndentConcat = “”

[0272] The next few lines set up some more HTML. The first of which is aheader line. The HTML <HEAD> tag is written over when a skin is created,and so the sHTMLHead variable's contents are not used unless writing tothe disk as an HTML File. This is included for debugging purposes only.

[0273] In step 410, map HTML is entered and tagged.

[0274] Referring to Table 32, the sHTML01 tag is added to the documentbefore the map HTML. This is not at the start of the entire document,but at the start of the Map. To put code into the true start of an HTMLdocument in a QuickPlace, manipulate the Notes objects directly, usingthe Domino Designer. To insert JavaScript or Style tags in a site mapdocument, put them in the sHTML01 string variable. The sHTML02 tag isadded at the end of the map HTML. This HTML is not at the absolute endof the HTML stream for the page, it appears at the end of the mapsection.

[0275] Pipe characters are used to define strings because they allowsone to put in un-escaped quote characters, but more importantly thestrings appear as they are typed, making it easier to debug. TABLE 32TAG START OF MAP sHTMLHead = |<html><head><link rel=stylesheettype=“text/css” href=“Mapperizer.css”></head>| ′ only for debug sHTML01= |<!-- start -->| ′put JavaScripts here or the imported documentsHTML02 = |<!-- end -->| ′this will be concantenated at the end

[0276] In step 412, a loop through the TOC is executed, and visible textcreated.

[0277] In Table 33, start looping through the Table of contents. Theview “h_Toc” is very important to this Bot, as it is the main guide tolocating relevant folders and documents. It is also possible to use theh_Index to find all documents, and look at their properties. To get alldocuments, the h_Index is a good view to use. If a document cannot befound in the TOC view, the Bot exits as errors will occur if the loopcontinues. TABLE 33 START LOOP THROUGH TOC sMainText = sHTML01 SetdocInTOC = viewTOC.GetFirstDocument If docInTOC Is Nothing Then ′makesure the TOC is found Call logAgent.LogAction (“Mapperizer: TOC NotFound” ) Exit Sub End If

[0278] Referring to Table 34, visible text is now beginning to becreated, first the title of the page, including the Place name. TheStyleTag is a CSS span instruction to help with formatting. TABLE 34STYLETAG sMainText = sMainText & sHeadingStyleTag & “All Documents inthe” sMainText = sMainText & ndb.Title & “QuickPlace” & sEndStyleTag

[0279] Referring to Table 35, a few of the database statistics are addedto the main text string. TABLE 35 DATABASE STATISTICS sMainText =sMainText & “<br>” & sDetailStyleTag & “Current Database Size:” & Cstr(ndb.Size / 1024) & “k” sMainText = sMainText & sDetailStyleTag &“Created:” & Cstr (ndb.Created) sMainText = sMainText & “Last Modified:”& Cstr ( ndb.LastModified) & sEndStyleTag & “<br>”

[0280] Referring to Table 36, start cycling through the documents in theTOC. The TOC contains a list of links that refer to items the users ofthe QuickPlace have chosen to display there. For example in a QuickPlacethere may be a Welcome document, a Discussion view, a link, a slidesshow and some other QuickPlace tools such as Customize. Each of theseelements is represented in the TOC by a data note. The only thing thatthe objects here have in common is that they have the field h_IsInTOCcontaining a value of “1” (text), and that it is properly published (isnot in draft mode and does not contain any $Conflict fields or documentsthat are in draft mode). Published items in QuickPlace are distinguishedby the h_Type field. If this field contains a “0” it is a document, “1”is a view and so on. In the section below value of “0” is found in thisfield and the item dealt with as a document. TABLE 36 TOC PROCESSINGWhile Not ( docInTOC Is Nothing ) If docInTOC.h_Type (0) = “0” Then ′itis a doc Set docTemp = docInTOC

[0281] Referring to Table 37, now that a document is found, the code canstart building the text string for that elements listing. It would be alittle strange if the site map page was visible in the map, so it isskipped in the looping process. The sMapDocName variable has thedocument's name assigned to it. TABLE 37 ASSIGN DOCUMENT NAME IfdocTemp.h_Name (0) <> sMapDocName Then

[0282] In step 414, URL strings are built for linked documents.

[0283] Referring to Table 38, another type of document that is handled alittle differently is the Link type document. QuickPlace knows adocument is a Link if the field h_URLPointer is not empty. So if theh_URLPointer field has content, the URL string is built using thecontent of that field. TABLE 38 BUILD URL FROM LINK TYPE DOCUMENT IfdocTemp.h_URLpointer (0) <> “” Then ′it is a link sMainText = sMainText& “<br>” & “<a href=” & docTemp.h_URLpointer (0) & “>”

[0284] Referring to Table 39, otherwise build the URL using the mainview of any Main.nsf database, the h_Index view. The h_Index view is themost important view for creating unique resource locators (URLs). Thefollowing line uses the Universal Identifier of the page beingreferenced. This value can be found in the first, visible, sorted columnin the h_Index view. Here the script continues building the text stringfor that element's listing. TABLE 39 BUILD URL FROM MAIN VIEW ElsesMainText = sMainText & “<br>” & “<a href=. ./. ./h_Index/” & Cstr(docTemp.UniversalID) & “?OpenDocument>” End If sMainText = sMainText &sPageImg & sStyleTag & docTemp.h_Name (0) & sEndStyleTag sMainText =sMainText & sDetailStyleTag sMainText = sMainText & “ (Last Changed: ” &Cstr (docTemp.LastModified) sMainText = sMainText & “ Size: ” IfdocTemp.Size < 1024 Then sMainText = sMainText & “0” End If sMainText =sMainText & Cstr ( docTemp.Size / 1024 ) & “k” sMainText = sMainText &“)” & sEndStyleTag & “</a>” nLinkCount = nLinkCount + 1 ′end standardformatting End If

[0285] In step 416, database elements are linked.

[0286] Referring to Table 40, the next Elseif operator executes if aview is found, here represented as a list of “notes”. Each of theseNotes creates a link to a database element; in this case a view.QuickPlace's definition of a View Note is that the h_Type field is 1.Finding the internal name of the view being referred to is done byfinding the value of the h_SystemName field, and storing it in thesSysName variable. The sSysName now contains the internal name of theview. This variable helps to find the current folder or view. TABLE 40LINK TO VIEW Elseif docInTOC.h_Type (0) = “1” Then ′it is a folder/viewsSysName = docInTOC.h_SystemName (0) ′get the internal name of the view′if it is a link to a QuickPlace tool page

[0287] In step 418, response folders are mapped.

[0288] Referring to Table 41, it is now known that a folder of a type tomap has been found. The iNested variable is set to 1 if it is a responsefolder and some form of indentation is suitable. TABLE 41 INDENTRESPONSE FOLDER Else iNested = 0 If docInTOC.h_FolderStyle (0) = “5”Then ′it is a response folder iNested = 1 End If

[0289] Referring to Table 42, the view name is now put into theviewcurrent variable. The URL to the view used here is not thedatabase/view, but rather

[0290] database/h_Index/viewDesignNoteID.

[0291] This is another example of how the QuickPlace Object Model workswith Design Notes. Referencing the design note will redirect correctlyto the view. This section of the script does exactly that, and writessome more text to the sMainText variable, which will later be printedout as the map page content. TABLE 42 REDIRECT TO VIEW UPON REFERENCE TODESIGN NOTE Set viewCurrent = ndb.getView(sSysName) sMainText =sMainText & “<br ><a href=../../h_Index/” & Cstr (docInTOC.UniversalID)& “?OpenDocument>” sMainText = sMainText & Chr(13) & Chr(9) & sFolderImgsMainText = sMainText & sFolderStyleTag & docInTOC.h_Name(0) &sEndStyleTag & “</a>”

[0292] In step 420, all documents in the view are gathered.

[0293] Referring to Table 43, inasmuch as the folder has been found, andwritten to the sMainText variable, it is now time to get all thedocuments in the view. To do this the docTemp variable is used to gatherall documents in the view. The code in this section is similar to thatfor finding documents in the top level of the TOC. However, they haveseveral subtle differences. The main one that the user sees is that theyare indented to one extent or another. Normal documents are indented onespace (13 pixels), but pages in response folders that are responses areindented a further 13 pixels. TABLE 43 GATHER ALL DOCUMENTS IN VIEW SetdocTemp = viewCurrent.GetFirstDocument While Not (docTemp Is Nothing) IfdocTemp.h_Name(0) <> sMapDocName Then sMainText = sMainText & “<br>” IfdocTemp.IsResponse And iNested Then iIndentDistance = 13 sIndentConcat =“<img src=blank.gif width=” & Cstr (iIndentDistance) & “height=1border=0>” sPrevSetParentUnid = sThisSetParentUnid Else iIndentDistance= 0 sIndentConcat = “” End If sMainText = sMainText & sIndentConcat

[0294] Referring to Table 44, link documents are be indented furtherbecause they are contained within folders, not appearing in the TOC atthe top level. TABLE 44 LINK DOCUMENTS INDENTATION IfdocTemp.h_URLpointer(0) <> “” Then 'it is a link sMainText = sMainText &“<a href=” & docTemp.h_URLpointer(0) & “>” Else sMainText = sMainText &“<a href=../../h_Index/” & Cstr (docTemp.UniversalID) & “?OpenDocument>”End If sMainText = sMainText & sPageSubImg & sStyleTag &docTemp.h_Name(0) & sEndStyleTag sMainText = sMainText & sDetailStyleTagsMainText = sMainText & “(Last Changed:” & Cstr(docTemp.LastModified)sMainText = sMainText & “ Size: ” If docTemp.Size < 1024 Then sMainText= sMainText & “0” End If sMainText = sMainText & Cstr( docTemp.Size/1024 ) & “k” sMainText = sMainText & “)” & sEndStyleTag & “</a>” Updatethe counter for displaying in the log. nLinkCount = nLinkCount + 1 Startthe loop again. End If Set docTemp =viewCurrent.GetNextDocument(docTemp) Wend End If

[0295] In step 422, valid links are displayed for HTML accumulated forthe page.

[0296] Referring to Table 45, with respect to the other document types,even though is not relevant in this situation, it provides an easy wayto implement mapping of room links. It would be possible to extend onthis and go into the database for the room referenced here, and show alldocuments in that room. However, that would breach security principals,to allow users to see all room links. If a user did not have access to aroom, the link would prompt a user name and password box to appear, andthey would be stopped. Users would be informed that a room existed, butthey were not able to enter. According to the QuickPlace model, onlyvalid links are displayed. Also, another line is writen to the log, andthe text finished for the page. TABLE 45 MAP ROOM LINKS Else 'it must besome other sort of link, such as a room (h_Type = “3”) End If SetdocInTOC = viewTOC.GetNextDocument( docInTOC ) Wend CalllogAgent.LogAction(“Agent Mapped ” & Cstr( nLinkCount ) & “ documents”sMainText = sMainText & “<br>” & sHTML02 & “<br>”

[0297] Referring to Table 46, this is the final step; output of theaccumulated HTML for the page. This code was developed in debug mode(iDebug 1) and the file written to an HTML file on the server. In a realenvironment, as these functions are disallowed in PlaceBots, securitywas reduced to allow this to work by setting the default access toManager. TABLE 46 OUTPUT ACCUMULATED HTML If iDebug Then 'debug versionwrites to a file fileNum% = Freefile() Open “D:\trash\trash.htm” ForOutput As fileNum% Print #fileNum%, sHTMLHead ; sMainText Close fileNum%Else 'release version writes to a QuickPlace Main.nsf dbdocReport.PageBody = sMainText Call docReport.Save( True, True ) End IfThen finish off with the exit and error handing methods. Exit SublblLogError: Call logAgent.Logerror (Err, Error$) Resume Next End Sub

[0298] Overview of the SiteMap.htm page

[0299] In this example, the SiteMap.htm page must be manually importedinto the QuickPlace and is the target document for the PlaceBot. Inother words, the Mapperizer PlaceBot goes looking for this file andrefreshes it. It has two parts. The wrapping for the actual map is whatis contained in the HTML file. In the middle of the page is aninstruction to render the map, then at the end is some more HTML tofinish off the page. The SiteMap PlaceBot and HTML file allow skin likecustomization. In other words its appearance can be dramatically alteredto suit the Place. This is done by altering the HTML in the SiteMap.htmfile, editing the images Folder.gif, Page.gif, PageSub.gif andIndent.gif which are referenced in the SiteMap.htm file.

[0300] To rename the SiteMap page a variable in the Mapperizer PlaceBotsMapDocName is edited. When creating a new site map page, that isrenamed with exactly the same name.

[0301] SiteMap HTML Page Description

[0302] The SiteMap HTML page is imported into QuickPlace and namedSiteMap. It is basically a wrapper for rendering the images on screenand presenting a single JavaScript document.write command. Everythingelse is either cosmetic presentation or error checking. Referring toTable 47, the essential lines in this page render the four images on thescreen, forcing QuickPlace to upload them: TABLE 47 FORGE UPLOAD <imgsrc=“Folder.gif”> <img src=“Page.gif”> <img src=“PageSub.gif”> <imgsrc=“Indent.gif”>

[0303] Referring to Table 48, the JavaScript command to print the textcreated by the Mapperizer PlaceBot onto the screen. TABLE 48 PRINT TOSCREEN <script language=JavaScript>document.write( PageBody) </script>

[0304] Referring to Table 49, to make the map more presentable, theimages are rendered on the screen in a table. Using a table allowscreation of a little vertical space, and also alignomg the images to theright. This is done to make the pixel images a little less obvious tothe reader. Due to the fact that the table is only one pixel high, itcan be filled with a color to create a really pretty line. TABLE 49RENDER IMAGES ON SCREEN IN TABLE <table width=100% border=0 width=10cellpadding=0 cellspacing=0 > <tr> <td height=1 align=right><imgsrc=“Folder.gif” width=“1” height=“1”><img src=“Page.gif” width=“1”height=“1”><img src=“PageSub.gif” width=“1” height=“1”><imgsrc=“Indent.gif” width=“1” height=“1”></td> </table>

[0305] Referring to Table 50, next comes the section which draws thebody of the document onto the page. The first JavaScript Line here makessure that the PageBody variable has been declared. Content in thePageBody field of a Quickplace document is automatically placed into thePageBody JavaScript variable. If the “typeof” test in the following textdetermines that the bot has not run, a message is printed onto thescreen giving information on how to get started. This is especiallyimportant because it helps avoid a JavaScript error through an undefinedvariable. The variable PageBodyMessage is the text to change to changethe message displayed on screen. TABLE 50 DRAW DOCUMENT BODY <scriptlanguage= Javascript> if ( typeof( PageBody) == “undefined” varPageBodyMessage = ‘Run the Mapperizer PlaceBot to see a site map .’;document.write( PageBodyMessage) } else{ document.write( PageBody) }</script>

[0306] Referring to Table 51, the Log should now show the following text. . . TABLE 51 LOG TEXT Started running agent ‘Mapperizer’ on 09/05/200009:31:31 PM 09/05/2000 09:31:31 PM: Mapperizer: IBM Redbook Example09/05/2000 09:31:31 PM: Mapperizer: Run agent: Mapperizer 09/05/200009:31:32 PM: Agent Mapped 18 documents Ran LotusScript code Done runningagent ‘Mapperizer’ on 09/05/2000 09:31:32 PM

Desktop Integration

[0307] Although Lotus QuickPlace is a web application that is displayedin a browser, much of the value that QuickPlace offers the user is itsability to easily allow content creation and content editing using toolsand applications already familiar to the user. For example, inQuickPlace Release 1, users could write documents using Microsoft Word,the most popular and widely used word processor for the Windowsplatform, and then import these documents into QuickPlace. Therefore,Microsoft Word became a content- creation tool for QuickPlace.

In-Place Editing

[0308] Referring to FIG. 13, in accordance with a further embodiment ofthe invention, a browser user can create MicroSoft Office documents fromwithin QuickPlace 352, such as a new Excel web sheet 354. As isrepresented by open line 357, QuickPlace will automatically launch Excel358, and when Excel 358 is closed, as is represented close line 359,QuickPlace 352 will bring in the Excel spread sheet 356.

[0309] Referring to FIG. 6, in general, standard web files 242, 244,248, 252, 254 and 250 are brought into the browser as files 230, 234 and238 such as via upload control 240, sent to the web server 258, Dominoserver 104 and QuickPlace extensions 108 and converted into applicationenabled objects 260, 262, 264 in QuickPlace 172.

[0310] In accordance with a preferred embodiment of the invention,QuickPlace extends this concept further using better integration withthe Windows desktop. In particular, the “Desktop Integration” featurearea includes:

[0311] 1. Round-trip editing of Microsoft Office and Lotus SmartSuitedocuments.

[0312] 2. Support for importing additional file formats using the HTMLexport engine from Verity.

Round-Trip Editing of Microsoft Office and Lotus SmartSuite Documents

[0313] Users are able to create documents based on Microsoft Office andLotus SmartSuite documents, and publish them into their QuickPlace. Thisis done by creating a document using Office or SmartSuite independent ofQuickPlace and then dragging and dropping this file into QuickPlace—thisprocess is referred to as “importing” Office and SmartSuite documents.Alternatively, the user will be able to create a page in QuickPlace andspecify immediately that the page's content will consist of an Office orSmartSuite document. The user will then use the selected application toedit the page. This process is referred to as creating a “Microsoft Wordpage,” for example.

[0314] In either case, users are able to edit QuickPlace pages using thesame Office or SmartSuite application that created them. This, ineffect, turns Office and SmartSuite into content creation tools forQuickPlace. At the same time, QuickPlace becomes a web publishing toolfor Microsoft office and Lotus SmartSuite users. Users will not have tolearn a new content creation and editing user interface; they willsimply use the tools that they have already become familiar with andwhich they have already used to create large amounts of content in thepast.

Support for Importing Additional File Formats Using the HTML ExportEngine from Verity

[0315] Since users may want to import content or information that wasn'tcreated with either Office or SmartSuite, in accordance with a preferredembodiment of the invention, various other file formats are supportedmaking it much more likely that every user will be able to quicklypublish data in collaboration space.

[0316] Further in accordance with this aspect of the invention, theimport feature provides that the import code will be run on the serverside. Thus, Internet Explorer users' Office and SmartSuite files areconverted to HTML on the client machine using OLE automation. AllNetscape users' files—and non-Office/SmartSuite files for IE users—arethen uploaded to the server in native format, and converted to HTMLusing the “HTML Export” engine from Verity. Since this conversion willbe performed on the server, no client code must be downloaded forNetscape users.

Round-trip Editing of Microsoft Office and Lotus SmartSuite Documents

[0317] In accordance with a preferred embodiment of the invention,collaboration space users will use OLE automation to support creatingand editing of pages using Microsoft Office and Lotus SmartSuiteapplications. As described below, both Netscape and IE users will havethe ability to import local files into QuickPlace using the HTML Exportengine from Verity running on the server.

[0318] For IE/Windows users, the benefits of using OLE Automation are asfollows:

[0319] 1. Each application will be able to provide the best possiblerepresentation of its application data in HTML. For example, the bestway to render a Microsoft Word file in HTML is to ask the Wordapplication to convert it.

[0320] 2. By using OLE automation, QuickPlace will be able toeffectively choreograph the application in question as an integratedediting tool. When the user creates or edits a QuickPlace document basedon Excel, for example, Excel will appear automatically, allowing theuser to edit the QuickPlace document using Excel.

[0321] The primary disadvantage of using OLE automation for creating andediting document is that the target application must be installed on theuser's client machine. To be able to edit a QuickPlace document usingWord, the user must obviously have it installed locally. On the otherhand, importing files using server-side technology will work regardlessof what software is installed on the user's machine.

[0322] In accordance with a preferred embodiment of the invention,round-trip editing provides the following features. Each of these willbe further described hereafter with reference to the various scenariosspecified.

[0323] 1. Creation of QuickPlace pages based on an office or SmartSuitedocument. (Scenario #1.)

[0324] 2. Import existing Office and SmartSuite documents intoQuickPlace. (Scenario #2.)

[0325] 3. Edit existing QuickPlace pages that were originally created orimported from an Office or SmartSuite application. (Scenario #3.)

[0326] 4. Be able to edit Office 2000 documents saved as a “Web Page” intheir original form. (Scenario #4.)

[0327] 5. Export HTML documents from QuickPlace back to the user's harddrive in their original form. (Scenario #5.)

[0328] 6. A new type of QuickPlace form based on an existing Office orSmartSuite document. (Scenario #6.)

[0329] 7. Allow non-empty file attachment fields to be used in forms.(Scenario #7.)

Scenario 1: Creating a new page based on Microsoft Word 2000

[0330] 1. Referring to FIG. 10 and Figure, a user clicks the “New . . .” button in the QuickPlace action bar 378 (FIG. 7). The “New . . . ”scene 408 appears with a list 412 of available page types. In additionto the old choices (Page, Imported Page, Calendar Page, etc.) eachOffice or SmartSuite application installed on the user's local machinewill be listed with a radio button. The user will know right away whichapplications can be used for editing—and won't be mislead into trying touse Office and SmartSuite applications they don't have on their machine.

[0331] This list 412 is generated by a hidden ActiveX upload control240, implemented by a DLL, which will be downloaded to client 102 onlyonce. Once installed on the users machine, it will be able to determinequickly which Office and SmartSuite applications are installed on themachine by attempting to obtain a COM pointer to each application's OLEautomation server object. This pointer will only be obtainedsuccessfully if the application is installed.

[0332] The control 240 has no UI. It will be created without a window(or with a zero-size window) and will simply return information to theJavaScript in the HTML scene.

[0333] Next, JavaScript in the scene will query the control for the listof applications, and generate the corresponding list 412 of radio button414 choices. Performance should not be an issue; the result will appearto be HTML that is “aware” of properties of the local machine.

[0334] 2. User selects “Microsoft Word 2000 Page” 416 and clicks “Next .. . ” 418. A new scene 420 appears in QuickPlace containing the uploadcontrol—the control will display 422 a single Word.DOC file 424, with noname and will also appear grayed out. At the same time, Microsoft Word2000 will be launched in the foreground, displaying a new, empty Worddocument 426.

[0335] Since the edit scene 420 contains the upload control 422, it isloaded immediately as the user enters the scene. The upload control willbe provided with the application chosen by the user, and willimmediately launch the application 426. It will also display a singlefile icon 424 representing the file being created.

[0336] Word 2000 will be displayed in a separate window 426, allowingthe user to use Word in the same manner as always.

[0337] 3. User types in a new Word 2000 document, and then closes theWord file 426, either using File→Exit, File→Close or File→Save As 428.QuickPlace detects that the original Word document is no longer beingediting and brings the QuickPlace window 420 to the foreground. The Wordfile is converted into HTML and displayed in the upload control 422.

[0338] In accordance with the preferred embodiment of the invention, OLEautomation is used to determine whether or not the user is still editingthe new Word file 426. As the user is editing the document in Word, theQuickPlace upload control 240 will periodically query Word for the listof documents currently active. When the original document is no longeractive, QuickPlace knows that the user has finished his/her edits andthat it should import the file into QuickPlace 108. Any of these UIactions can finish the edit session on the original document:

[0339] File→Close: The user has closed the original file, but maycontinue to use Word to edit other .DOC files.

[0340] File→Save As: The user has chosen to save the original file witha new name on their local machine

[0341] File→Exit: The user has quit Word entirely.

[0342] Regardless of how the user finishes editing the document,QuickPlace will detect that it is no longer active in Word. If thefile's contents have changed (i.e. it is not empty) the file will beconverted into HTML.

[0343] 4. User publishes the page and the new .DOC file, along with itsequivalent HTML file, is uploaded to the server.

[0344] After the .DOC file is converted to HTML, it is uploaded to theserver. The HTML and DOC files are both attached to the same Notesdocument, and a Notes field is set indicating to the QuickPlaceJavaScript UI which HTML was created.

Scenario 2: Import an existing PowerPoint 97 file into QuickPlace.

[0345] 1. User clicks “New . . . ” and then selects “Imported Page.”Theimport scene with the upload control is displayed—this time the controlis initially empty.

[0346] 2. User selects an existing PowerPoint 97 (.PPT) file from thelocal hard drive and drags/drops it into the upload control. A progressdialog box appears displaying “Converting from Microsoft .PPT format toHTML. Please Wait . . . ” Later, a PPT file icon is displayed in theupload control. OLE automation converts the file into HTML and importsit into QuickPlace.

[0347] 3. User publishes the page. The .PPT and all of its associatedfiles are uploaded to the server. The slides from the PowerPointpresentation are all displayed in the same QuickPlace page, along with“Previous,” “Next” and “Zoom” buttons. Referring to the UI of FIG. 12,these slides are displayed in the same QuickPlace page.

[0348] Referring to FIG. 12, clicking the “Zoom” button 418 causes aseparate browser window to appear with a larger version of the currentslide; it will also contain “Next” 423 and “Previous” 421 buttons.Displaying multiple PowerPoint slides, Excel worksheets, or other datain the same QuickPlace page is accomplished by uploading a series ofHTML documents, one per slide/worksheet, to the same Notes document. Inaddition, each of the HTML documents is modified to link to the next andprevious document. When the user clicks on “Next” at read time, a URL isissued to load the next slide in the page content frame as follows:“$FILE/slide5.htm?OpenElement”—referring to the next slide in thesequence. All images and other support files are attached to the sameNotes document as well.

[0349] Scenario 3: Edit Existing Microsoft Excel 97 Page.

[0350] 1. User views Excel 97 page in QuickPlace and clicks “Edit . . .” The edit scene with the upload control is displayed and the Excel97.XLS file is displayed as a file icon in the control. In addition,Excel 97 is automatically launched with the user's original .XLS file.

[0351] In accordance with a preferred embodiment of the invention, theassociated Office or SmartSuite application is automatically launchedand given the original file. This allows the user to edit the QuickPlacepage directly without having to double click on the file icon. It givesthe user the impression that she is directly editing the QuickPlacecontent using Excel 97, for example.

[0352] If Excel is not installed on the machine when this page isedited, for example if a different user edited the page or the originaluser used a different machine, an error message appears informing theuser that Microsoft Excel is required to edit the page. However, theedit scene is still displayed with the XLS file icon—allowing the userto replace it with a different Excel file if such a file were available.

[0353] 2. User finishes editing the Excel XLS file, saves and exitsExcel. The XLS file is converted into HTML. Finally, the user publishesthe page and the new version of the XLS file, along with the HTMLequivalent, is uploaded to the server.

[0354] Implementing this feature is no different from the page creationscene, described above. The same code is used to detect when the userhas stopped editing the Excel 97 document, and to convert the XLS fileinto HTML.

[0355] Scenario 4: Import and Edit an HTML File Originally Created byMicrosoft Word 2000.

[0356] One of the principal features of Microsoft Office 2000 is theability to save native Office documents, .DOC or .XLS files for example,as HTML without losing any of the original formatting, layout or otherinformation specific to that Office application. For example, users cansave a Word 2000 document as HTML, and then later open that HTML fileusing Word and see the document in its original form, without losing anyfidelity along the way.

[0357] QuickPlace today allows users to import HTML files that wereoriginally created by Office 2000, (Word, Excel or PowerPoint) intoQuickPlace like any other HTML file. However, in accordance with apreferred embodiment of the present invention, users may edit pagescreated by importing such HTML files, using the Office application thatoriginally created them. This scenario describes such an edit operation:

[0358] 1. User creates a document using Word 2000, and then uses theWord 2000 “File-> Save As Web Page” command to save the file.

[0359] Now the user has an HTML file on the local hard disk thatcontains the text in HTML format, along with formatting informationsaved with XML tags. In addition, Word has also created a number ofsupport files, such as images, an “XML file list” file, style sheets,and other files. All of this information is used by Word to re-open thefile later and obtain all of the original formatting and styleinformation.

[0360] 2. User imports this new HTML into QuickPlace, using the sameimport UI.

[0361] In accordance with this embodiment of the invention, all of thesupport files that were created by Word 2000, along with the HTML file,will be detected and uploaded to QuickPlace. Previously, only the HTMLand any images referenced by it were uploaded. Now, the HTML file isparsed to determine whether it was created by an office 2000application. If it was, all of the support files are located on theuser's hard disk and uploaded to the server.

[0362] 3. Later, user edits this imported QuickPlace page.

[0363] As soon as the user clicks “Edit,” QuickPlace displays the editscene with the HTML file's icon, and also automatically launch Word 2000to edit the document. Even though the file was converted to HTML byWord, it will be displayed in its original form.

[0364] Once the HTML file was identified as a “Word 2000 HTML document”(step 2 above) the Notes document corresponding to this QuickPlace pageis marked as containing a Word 2000 document, as if it were createdusing the New . . . , Microsoft Word 2000 Page UI described in Scenario#1. After the user clicks “Edit,” the HTML along with all of thesupporting are downloaded to the user's machine. These files are placedin the user's TEMP directory, but the support files are placed into asubdirectory corresponding to their original locations when the file wascreated. This facilitates Word 2000 reopening the file.

[0365] After the user makes some changes and closes in the file in Word2000, the new version of the file along with all of the support filesare again uploaded to the server.

[0366] Scenario 5: Export an HTML Document Back to the User'S Hard Diskin its Original Form.

[0367] Previously, the user could import an HTML file into QuickPlaceand all of the associated images would be uploaded to the server aswell. In accordance with a preferred embodiment of the invention, theuser may now download the HTML and the images back to the hard disk—orto some other machine—in their original form.

[0368] 1. User imports an HTML file into QuickPlace, which contains animage.

[0369] As before, the HTML and the referenced image, are uploaded to theserver. In the background, the <img> tags in the HTML file are modifiedto refer to the copy of the image file attached to the Notes document onthe server. In accordance with this embodiment of the invention, theoriginal HTML file, i.e. an unmodified copy of the HTML file, isuploaded to the server as well.

[0370] 2. User edits the imported page. The upload control is displayedwith the HTML and the image file. The user then drags and drops the fileonto the desktop.

[0371] In accordance with this embodiment of the invention, uploadcontrol 240 downloads the unmodified, original copy of the HTML to theuser's machine, along with the image files that it refers to. Since allof these files are stored in the same directory on the user's machine,the <img> tags in the original HTML are modified again to reference theimage file in the same directory. This is necessary since the image filemay have originally been located in other directories on the user'smachine.

[0372] In accordance with this embodiment of the invention, users maycreate a new type of QuickPlace form based on a Microsoft Office orLotus SmartSuite document. For example:

[0373] 1. User decides to create a new form: Customize→Forms→New Form

[0374] 2. Referring to FIG. 14, the “New Form” scene 430 appears. IfMicrosoft Office or Lotus SmartSuite is installed on the user's machine,an additional paragraph 432 is displayed “Based on a Microsoft Office orLotus SmartSuite Document”. This allows the user to create a form basedon a Word, Excel, or another Office or SmartSuite document. When pagesare created based on this form, the corresponding application will beopened with a particular file. A hidden ActiveX control returns whetherany Office applications are installed, or whether any SmartSuiteapplications are installed. If none are, the upload control 434 and itsintroduction text 432 are displayed.

[0375] 3. User selects an Excel 2000 file 436 and drops it into theupload 434 control that appears below the “Based on a Microsoft Officeor Lotus SmartSuite Document” paragraph 432.

[0376] This file, represented by icon 436, is uploaded to theserver—this will form the basis for this form. Every user who creates apage based on this form will see Microsoft Excel opened and loaded withthis file.

[0377] 4. The user adds some additional fields 440-446 and then savesthe form by clicking “done” 448.

[0378] 5. Later, the user creates a page based on this new form: “New .. . ”, select the form, etc. As soon as the user starts to edit the newpage, Microsoft Excel is launched with the file that was originallyattached to the form. This allows every user to enter information into aspreadsheet, for example. It's essentially the same as creating a pagebased on an Excel spreadsheet, except that Excel is pre-loaded with afile selected by whichever user created the form. If a particular userdoesn't have Excel installed on her machine, she'll receive an errormessage informing her that Excel is required to create a page using theform.

[0379] 6. After the user closes the Excel file, it is converted to HTMLand uploaded to the server. The user may then enter values into otherfields on the form and publish the page. Once the page is published, itis considered to be based on the Excel document—whenever it is edited inthe future, Excel is again automatically launched with the given file.

[0380] Scenario 7: Create and Use a Form Containing a Non-Empty FileAttachment Field.

[0381] Previously, the “Attachments” field in QuickPlace could be addedto QuickPlace forms to allow users to attach documents to pages createdusing a form. However, the attachment always appeared empty for each newpage. In accordance with a preferred embodiment of the invention, theform creator may attach a file or set of files to this field which willappear pre-attached to each page created using the form. For example:

[0382] 1. User creates a new form. Customize→Forms→New Form

[0383] 2. User adds an “Attachments” field, by clicking the “Add”button, selecting “Attachments,” and clicking “Next.” The “AttachmentOptions” scene appears. Previously, the attachment options scene wasempty. Referring to FIG. 15, in accordance with this embodiment of theinvention, an upload control scene 450 is displayed. The user then mayattach any set of files to the form, which will then be attachedautomatically to each page created based on that form.

[0384] 3. User drops a Word document 452 into the upload control 434.Then the user saves the new field and the form—call it “Word Form.” TheWord document 452 will be uploaded and attached to the Notes documentrepresenting the QuickPlace form like any QuickPlace page.

[0385] 4. Later, another user creates a page based on this new form:“New . . . ” and “Word Form.” An edit scene appears containing an uploadcontrol; the original Word document is displayed in the upload control.

Importing Additional File Formats Using an HTML Export Engine

[0386] Referring to FIG. 16, in accordance with an exemplary embodimentof the invention, to allow browser 112 users to import interest contentinto a QuickPlace, HTML conversion module 454, such as an “HTML Export”engine from Verity, is used on the server. Whenever a browser 112, suchas Netscape, user imports a file—or when an Internet Explorer userimports a file that is not recognized by the OLE automation codedescribed above, i.e. a non-Office/SmartSuite file—as is represented byline 455, the file is uploaded unmodified to the server. As isrepresented by line 451, server 100 passes the file onto the Verifyengine 454, which will attempt to convert it into HTML. If this issuccessful, as is represented by line 453, the HTML will then beattached to the QuickPlace page and displayed whenever a user reads thispage.

[0387] Scenario #8: Netscape user imports Microsoft Word Document intoQuickPlace

[0388] The sequence of events that will occur when a Netscape userattempts to import a Microsoft Word document into QuickPlace are asfollows:

[0389] 1. Netscape user creates an imported page in QuickPlace: New . .. , Imported Page.

[0390] 2. The user selects a Microsoft Word document from the hard driveusing the standard HTML “Browse” button and the standard File-Opendialog box.

[0391] Previously, every file imported by the user was assumed to beHTML. In accordance with this embodiment of the invention, the user willbe able to select any file, as long as it is supported by the conversionengine 454. For example, for a Verity conversion engine, formats thatare supported include:

[0392] Microsoft Word 97/2000

[0393] Microsoft Word 6/95

[0394] Microsoft Word 2

[0395] Microsoft Word Mac

[0396] Microsoft Excel

[0397] Microsoft PowerPoint 97/2000

[0398] Microsoft PowerPoint 95

[0399] Microsoft PowerPoint 4.0

[0400] Microsoft Write

[0401] Microsoft Rich Text Format

[0402] Lotus WordPro

[0403] Lotus 123 96/97

[0404] Lotus 123 V2-5

[0405] Lotus Freelance Graphics 2.x

[0406] Lotus Freelance Graphics 96/97

[0407] Lotus AmiPro

[0408] Corel Quattro Pro Spreadsheet

[0409] Corel WordPerfect 5.1

[0410] Corel WordPerfect 6.x to 8.x

[0411] Windows Bitmap

[0412] Icon Files

[0413] PNG (Portable Network Graphics)

[0414] TIFF

[0415]3. User clicks “Next”

[0416] At this point, Netscape will automatically upload the selectedfile to the server. If the user picked a file which is not supported byVerity, a JavaScript error would be displayed.

[0417] In addition to uploading the selected file, the “h_command” HTMLfield is set to a value such as “h_VerityImport”—this will cause theVerity Import command to be executed on the server. This code will thenobtain the selected file from the browser's HTTP Post request, save itin the TEMP directory on the server machine, and then call the VerityHTML Export engine.

[0418] If the Verity code is able to successfully convert the selectedfile to HTML, the server attaches the resulting HTML file, and anysupport image files or other files, to the current Notes document.Finally, the document is published as usual.

[0419] If the Verity code 454 is unable to convert the selected file toHTML, a server exception will be thrown, and a helpful error messagedisplayed in the user's Netscape browser 12.

[0420] To implement this embodiment of the invention, a new “HaikuCommand” (“h_VerityImport”) in NINOTES.DLL is implemented to call intoVerity 454 when a file is received from the browser 112. This commandcalls into the Verity C API, passing the uploaded file 451 as aparameter. In addition, some of the HTML import code is copied into theserver (NINOTES.DLL) to alter the HTML after it has been created byVerity—fixing up image tags, and adding JavaScript to the HTML to makeit function properly inside of QuickPlace.

[0421] Scenario #9: Editing a QuickPlace File Attachment: for example“schedule.xls”

[0422] Referring to FIG. 17 through FIG. 24, in accordance with apreferred embodiment of the invention, editing a QuickPlace fileattachment and saving the changes back to QuickPlace will occur asfollows:

[0423] 1. User reads a QuickPlace page which contains 3 file attachments458, one of which is called “schedule.xls.” 456. The file is displayedinside a grayed-out upload control 460. The grayed-out appearance of theupload control 460 reminds the user that this is a read-only copy of thefile, and that if the user attempts to modify the file here it will notbe possible to save the new version of the file back into QuickPlace.

[0424] 2. The user edits the QuickPlace page and double clicks onschedule.xls 456, launching Excel 2000, the associated application. Thistime, in edit mode, the upload control 462 is not grayed out and theuser realizes that the file may be edited.

[0425] 3. The user makes some changes to the file and shuts down Excel2000. QuickPlace detects that Excel 2000 is no longer running,determines that schedule.xls 456 has been modified and displays dialogbox 464. If the user clicks “Yes” 466 the new version of schedule.xls isuploaded to the server and the old version is discarded. However, if theuser clicks no 468, an additional file icon 470 appears in the uploadcontrol 462. The user must type in a new name for this file—or type“Escape” and cancel the upload operation. Finally, if the user doesn'tselect a new file name and simply presses “ENTER” an error is displayed.

File System Directory Architecture

[0426] In accordance with the preferred embodiment of the invention,every new QuickPlace created gets its own directory under the QuickPlacemaster directory. The name of that directory is same as the name of theQuickPlace. Each additional room in the QuickPlace is another file(.nsf) in the QuickPlace directory. During the QuickPlace serverinstallation, the default QuickPlace (also called the “Welcome”QuickPlace) with the name of QuickPlace is automatically created. Thisis the entry point to the QuickPlace server including the serveradministration. FIG. 8 shows the directory structure, along with thefiles in “Welcome” QuickPlace, in a stand-alone QuickPlace server.

[0427] For example if Millennia is the a current QuickPlace, then thebasic infrastructure of the Millennia QuickPlace resides under

[0428] \lotus\domino\data\quickplace\millennia

[0429] (on Domino server—given that

[0430] \lotus\domino\data

[0431] is the data directory) or

[0432] \lotus\quickplace\data\quickplace\millennia

[0433] (on stand-alone—given that

[0434] \lotus\quickplace is the QuickPlace installation directory).

[0435] When QuickPlace server is installed, the “Welcome” region or the“Administrator's Place” is pre-configured to allow an entry point to theQuickPlace server. An administrator can then administer the newlyinstalled QuickPlace server from this entry point. This so calledadministrative QuickPlace resides under the QuickPlace directory whichin turn is under the data directory. For an example it is

[0436] c: \lotus\domino\data\QuickPlace\QuickPlace

[0437] when installed under Domino, and

[0438] c: \lotus\QuickPlace\data\QuickPlace when in stand-alone mode. Itcontains the following files: Main.nsf, Contacts1.nsf, CreateHaiku.nsf,Admin.nsf. The templates for these Domino databases reside in thedirectory named AreaTypes. The “Welcome” page may be configured to suitthe needs of an organization.

Tasks

[0439] In accordance with a preferred embodiment of the invention,custom field definitions allow a user to create forms in the QPenvironment without having to write HTML, leaving the generation of theHTML to QuickPlace. A field object may be created at the browser in Javascript that contains the properties of the field and the methods whichdisplay and operate on that field, including validation. In general, anobject is made up of properties and methods. Previously, the HTML wasstored with the field definitions. A problem with this procedure is thatwhen it is desired to change the field, it was necessary to upgrade thedata in all of the field definition documents. With the presentinvention, users can now create their own field definitions. The html isgenerated on the fly, and this facilitates the creation of tasks.

[0440] When a new form is created, all fields that go with that form areobtained. A manager can create a form. A page is something that containsdata. A form is use to create that data. When anyone creates a page, heis presented a list of possible forms. A manager can request creation ofa new form. When a new form is requested, QP shows a form that showsinformation that is need to create the form. The user fills in thatinformation, and can also click an add field button. QuickPlace respondswith a list of the field types that can be created. The user selects andconfigures the desired field type for each field desired on the form.When the user done adding fields, he clicks “done”. Thereafter, when auser clicks new, that new form is displayed as one of the options foruser selection.

[0441] Previously, it has been very difficult to create new types offields. In accordance with the present embodiment of the invention, atask page is displayed at the browser together with an edit page andfields for all of the material needed to create a field.

[0442] Further in accordance with a preferred embodiment of theinvention, a task control section is provided which can be added to anynew form, thus enabling task definitions in collaboration space. Task isan option when adding a new field, and this can be customized to includea start date and whether it will have a priority or category, anddefault value for the priority.

[0443] QP client code implements the “on the fly” concept. The code isstored on the server, and sent to the client for the creation of thesefields, and the corresponding HTML executes on the client. A page on theserver is sent to the client, that page contains the java script whichwill generate the HTML.

[0444] Referring to FIG. 23, in accordance with a preferred embodimentof the invention, users in collaboration space can view a tasks page 506as a timeline 508, with options for refining the timeline display forthe variety of timescales (days, weeks, months, quarters, etc.) that mayarise. Also, referring to FIG. 22, tasks page 506 may be presented inlist mode, with the user provided buttons 508 for selecting a desiredformat, and other options 510. FIG. 24 represents a read scene statedisplay for tasks.

Forms Definition in Collaboration Space

[0445] In accordance with a preferred embodiment of the invention, usersare provided with a method for defining forms to create pages withincollaboration space. These methods include options to upload a documentand send a notification, add a meeting to the calendar, or add a taskinto the QuickPlace.

[0446] By clicking on New . . . , the user gets a list of forms includedin QuickPlace that can be used to add a new document to it. The formsprovided are sufficient for many uses, but do not give any task-specificways of adding content to the QuickPlace. To do this, a user may createher own form and adapt it to her particular needs.

[0447] There are three ways to create forms: create a form usingstandard QuickPlace fields; import a form 250 created in MicrosoftOffice 228; and import a form 122 created in an HTML editor 124.

[0448] In accordance with this embodiment of the invention, whencreating a form, it can be adapted to the workflow in the team.

[0449] Defining a Type of Workflow

[0450] To accomplish a company's goals, certain tasks must be executed,fulfilling a number of activities in a certain order, and doing thiswithin a given time frame. This definition of goals and procedures theworkflow of an organization. In accordance with a preferred embodimentof the invention, collaboration space can be adapted to reflectworkflow.

[0451] Referring to FIG. 25, workflow page 512 provided by QuickPlaceenables integration of a form into the organization's workflow. Thefollowing options are available from the form workflow page:

[0452] No special workflow 514: pages are simply created by an authorand published by the member who created the page.

[0453] Simple Submit 515: pages are simply created by an author andsubmitted. This will add a submit button to the button bar at the top ofthe page.

[0454] Editor In Chief 516: pages are created by authors, but pages willonly be published after being approved by a specific member—the EditorIn Chief.

[0455] Approval Cycle 517: each page is routed through a series ofmembers in a specific order.

[0456] Multiple Editors 518: pages are created by an author and then,once published, can be further edited by any of the authors in the room.

[0457] No Special Workflow

[0458] The no special workflow option 514 allows members to publishtheir pages bases on this form without first getting approval from anyother member of the QuickPlace either as a draft or in their final form.

[0459] Simple submit

[0460] The simple submit option 515 is chosen when the pages created bythis form don't have to undergo review, the users are not able to savepages created by this form as drafts and when it is needed to be able torename the Publish button. When an author creates a page using thisform, the following events happen, assuming that the Simple submitworkflow was used to rename the Publish button to Post to ProjectMilestones button.

[0461] 1. The author creates the page and clicks on Post to ProjectMilestones.

[0462] 2. The page is published to the Project Milestones folder.

[0463] Editor in Chief

[0464] The editor in chief option 516 is selected when a single memberis to review each page created with the form. When an author creates apage that has to be reviewed by an Editor in Chief, the following eventoccurs:

[0465] 1. The author finished editing the page and notifies the Editorin Chief that the page is ready for review by clicking on the Submitbutton. Technically, the author has passed the right to edit the page tothe Editor in Chief. Editor-In-Chief Pages are created by authors, butpages will only be published after being approved by a specificmember—the Editor-In-Chief.

[0466] Upon submitting the page, the author can choose to send theEditor in Chief a note about the page by E-mail. The note only appearsin the E-mail message, not on the page itself.

[0467] The author can also save the page under construction to continueediting at a later time before submitting it to the Editor in Chief.

[0468] 2. The Editor in Chief receives an E-mail message containing theauthor's note (if one has been created) with a link to the new page.

[0469] 3. The Editor in Chief reviews the pages and does one of thefollowing:

[0470] Edits the page (if necessary) and by publishing approves it. TheEditor in Chief can select to notify the author that the page has beenpublished.

[0471] Rejects the page. The Editor in Chief can choose to attach a noteto the rejection message. The author receives an E-mail message sayingthat either the page has been published or rejected. If the pages hasbeen rejected, the author can revise the page and then resubmits it tothe Editor in Chief for approval.

[0472] Approval Cycle

[0473] The approval cycle option 517 is selected when each page is to berouted through a series of members in a specific order. This workflowoption 517 is chosen when the more that one member of the collaborationspace is to review pages created with the form. This is similar to theEditor in Chief process 516, only that it includes more that onereviewer.

[0474] After choosing approval cycle, which members and in which orderto review the document are specified. Restrictions may be set on who mayread or edit the final page and the member determined who is responsiblefor editing the page when it is rejected. By way of example, if anapproval cycle 517 is defined with two reviewers, and the folder ProjectMilestones set as the destination for final approved pages, thefollowing events occur:

[0475] 1. The author finishes editing the page and notifies the firstreviewer that it can be reviewed by clicking the Submit button.

[0476] The author can choose to send a note on the page in an E-mailmessage to the first reviewer. This note only appears in the E-mailmessage, not the page itself.

[0477] The author can also choose to save the page under construction tocontinue editing it at a later time.

[0478] 2. The first reviewer receives an E-mail notifying him that thepage is ready for review. It contains the note from the author (if onewas created) and a link to the page awaiting approval. The firstreviewer reviews the page and takes one of the two following actions:

[0479] Reads and edits the page (if necessary) and submits it to thenext reviewer.

[0480] Rejects the page. The reviewer can choose to create a note toaccompany the rejection notice.

[0481] 3. If the first reviewer rejects the page, the author receives anE-mail notifying him of the rejection. He then can change the page andresubmit it to the first reviewer, repeating the first two steps of thisprocedure.

[0482] 4. If the first reviewer approves the page, the second reviewerreceives an E-mail with a link to the page awaiting approval and a notefrom the first reviewer (if one was created). The reviewer takes one ofthe following actions:

[0483] Reviews, edits (if necessary) and approves the page. The page isthen published in the Project Milestones folder.

[0484] Rejects the page. The author receives an E-mail message statingthat the page has been rejected. The second reviewer can choose tocreate a note to accompany the notification.

[0485] 5. The author receives the notification, corrects the page andresubmits it to the second reviewer, who in turn can then either rejectit again or publish it.

[0486] Multiple Editors

[0487] The multiple editors option 518 is selected when pages arecreated by an author and then, once published, can be further edited byany other author in the room. This option is chosen when all authors inthe QuickPlace are given edit rights to the page created by this form.This is useful if a document has to be viewed by all and all authors mayadd their thoughts to it. This option is useful for poll forms, as auser edits the page when she casts a vote in the poll. The member has tobe an author to take part in the voting.

[0488] Creating a Form Using Standard QuickPlace Fields

[0489] Creating a form within QuickPlace may be done in several ways. Togenerate a simple form with just a couple of fields in it, use thefeature within QuickPlace. If designing a form that is moresophisticated, or it is needed to include JavaScript to do checks onfields, for example, the form is created outside of QuickPlace andimported, as illustrated in FIG. 21.

[0490] By way of example, suppose users are to be able to add events tothe calendar when the page is published, and also have the pagespublished in a specific folder. To do this, choose customize from themain menu, and click on new form. On the next screen, choose simple formand click on Next. FIG. 26 illustrates the Edit form page 522. Addfields to the form by clicking on Add 520, and select a field. To addthe page created by this form to the calendar automatically, choose thefield Event date and time. As shown in Table 52, QuickPlace respondsproviding a choice of standard fields which can be used to create theform. Furthermore, referring to Table 53, there are a number of fieldsthat are non-editable, but provide additional information on the form.TABLE 52 EDITABLE FIELDS FOR CREATE FIELD Field type Function Plain TextPresents a one-line unformatted text field Text Area Presents amulti-line unformatted text field Pop-up list Presents a list of choicesfrom which to choose Time Pop-up Presents a time pop-up Name Pop-upPresents a list of QuickPlace members Attachments Presents a field foradding file attachments Rich Text Presents a field where the author canenter formatted text and images Calendar Date-Time Presents acombination of date and time fields so that pages created with this formwill automatically be added to this QuickPlace's Calendar Task Presentsa combination of task related fields so that pages created with thisform can be tracked as tasks

[0491] TABLE 53 NON-EDITABLE FIELDS FOR CREATE FORM Field type FunctionNotification Indicator Used to automatically send E-mail to individualsNon-Editable Rich Text Presents non-editable text and graphics on theform. Typically this is used to provide an attractive banner on top ofthe form Page Author Presents the non-editable name of the author whocreated the page with this form Creation Date Presents the non-editabledate that the page was created Last Modified Date Presents thenon-editable last modification date of the page Page Size Presents thenon-editable size of the page Serial Number Presents a non-editableunique for each page created with the form (for example, Purchase OrderNumber)

[0492] Selecting a field type brings up on the screen the instructionsfor adding to the field to the form being developed. If the pagescreated by this form are to be published in a specific folder, thefolder is chosen from a drop-down list. As an option, a fullerdescription of what the form does can be added. This description appearsnext to the name of the form when the user clicks on New . . . .

[0493] Setting Tasks

[0494] Besides choosing a type of workflow for forms created in aQuickPlace, task settings may be chosen on the pages that are createdusing the form and adding them to the Tasks list in the QuickPlace. Todo this, add the field Task from the Add Field page and click Next. Thefollowing page provides a way to name the task field, set a start dateand the priority for the task, and set the initial choice for thepriority. When finished adding fields to the form, clicking on Donesaves the form.

[0495] Authors can create pages based on the form by clicking New . . .in the button bar and selecting the form from the page which appearsnext.

[0496] Upload a Form Created in MS Office

[0497] If the form requires some fields that are not part of theQuickPlace form creation applet, a form can be created either in MSOffice 228 or in an HTML editor 124. To use MS office 228, create a newWord document, and add web form fields, such as by clicking on theappropriate field icon in a Microsoft Word web tools toolbar. Save thedocument as a Word file 250 when finished. QuickPlace will automaticallyconvert the document to HTML when it is imported.

[0498] The web tools toolbar in Word offers eleven standard fields touse in a document: Checkbox control, Option or Radio button control,Drop Down box control, Listbox control, Textbox control, Text Areacontrol, Submit control, Submit with Image control, Reset control,Hidden control, and Password control.

[0499] By selecting control and clicking on Properties, an HTML name andvalue can be assigned to the field.

[0500] ActiveX controls

[0501] ActiveX controls, supported by Internet Explorer, may also beadded from the control toolbox and clicking on Properties. The followingActiveX controls are available from the tool box: Check box, Spinbutton, Scroll bar, Label, Text box, Command button, Option or Radiobutton, List box, Combo box, Toggle button, Image. Additional ActiveXcontrols can be registered by clicking on More Controls and registeringthe ones needed. When finished editing the document, it is saved as a MSWord document 250 and upload it to the QuickPlace. To upload, click onCustomize and select Form. On the next page, click on New form, andselect Microsoft Office form, then click on Next. Referring to FIG. 27,this next page is shown. The MS Word document can by uploaded bydragging and dropping it into the bucket (upload control 240), orselected by clicking on Browse 524. A workflow option can be selectedfrom list 526. To change the standard Publish button for the form,select Workflow 526 and choose Simple submit 515. This will add a submitbutton into the button bar at the top of form when it is filled in.Click on Next and provide a name 528 for the submit control on the nextpage. Click on Next. Select the folder the pages are to be published infrom the drop-down list 444. Add a short description of the form, ifdesire, at field 446. Clicking on Done will publish the form to theQuickPlace.

[0502] Authors can publish pages by selecting New . . . from the buttonbar and selecting the form created from the list.

[0503] Upload a Manually Created HTML Form

[0504] If more control over how the form appears in the QuickPlace, orif JavaScript must be included, the form is created using an HTML editor124.

[0505] The following two examples illustrate how this is to be done.When creating an HTML form manually in an HTML editor 124:

[0506] (1) Put all code, including any JavaScript, within the <body> tagof the document. All other parts of the document, that is, the <head>and <title> tags, will be replaced by custom QuickPlace tags once theform is uploaded.

[0507] (2) The form tags <form> and </form> are not needed within themanually created HTML form. QuickPlace will add custom code when theform is uploaded.

[0508] (3) QuickPlace system fields can be used in the form. In thefollowing examples, the name of the page is set in a text field named hName, which is the system field for the page title.

[0509] Use QuickPlace Controls in the Form

[0510] QuickPlace provides two client-side components for users toquickly interact with the QuickPlace, the Rich text and the Uploadcontrol. Authors can format their text in the Rich text control, givingit a personal look and feel. They can upload documents to the QuickPlaceby dragging and dropping 111 them into the Upload control 240. Thesecontrols only have their full functionality in Internet Explorer. Bothare ActiveX controls in Internet Explorer. Calling a form with the Richtext control included starts a Java applet in Netscape Navigator. TheUpload control displays a browse button in Netscape Navigator. Theauthor then can select a file from his computer when he or she clicks onit.

[0511] Both browsers display the formatted Rich text in read mode andload the appropriate client-side component when changing into edit mode.Internet Explorer lets the user drag a document out of the Uploadcontrol box 240 to download or view the document, whereas NetscapeNavigator displays a link the user can click on to download or view thefile. The forms provided by QuickPlace use these controls, and they canbe include new forms.

[0512] The QuickPlace Upload Control Example

[0513] The example form of Table 54 creates a page that includes theQuickPlace control to upload files to the QuickPlace. It also includessome fields for the user to fill in to provide information about theattached file. The <body> tag contains the complete form, and the <form>tags are omitted from the HTML page. Adding fields begins right afterthe <body> tag. Standard HTML fields can be used in the form, and thisexamples shows use of text fields, a text area and a drop-down field.TABLE 54 PAGE UPLOAD CONTROL <html> <head> <title>Upload control</title></head> <body> <table border=0> <tr> <td colspan=3><imgsrc=“ecblank.gif” width=“300” height=“1” border=“0”> <tr><td><b>Document Title</b></td> <td>&nbsp;</td> <td><b><input type=“text”name=“h_Name”></b></td> </tr> <tr> <td>Your first name</td><td>&nbsp;</td> <td><input type=“text” name=“fname”</td> </tr> <tr><td>Your last name</td> <td>&nbsp;</td> <td><input type=“text”name=“lname”</td> </tr> <tr> <td>Company</td> <td>&nbsp;</td> <td><select name=“selector”> <option value=“-- choose one --”>----choose one----</option> <option value=“Millenia”>Millenia</option> <optionvalue=“TheRock”>TheRock</option> <option value=“CapMan”>CapMan</option></select> </td> </tr> <tr> <td valign=“top”>Give a shortdescription<br>of your file</td> <td>&nbsp;</td> <td><textareaname=“description” rows=5 cols=50></textarea></td> </tr> <tr> <tdvalign=“top”>place your file here</td> <td>&nbsp;</td> <tdvalign=“top”><QuickPlaceCONTROL type=“attachment”name=“attachment”></td> </tr> </table> </body> </html>

[0514] In the continuation of Table 54, the QuickPlace component for theUpload control is included. In Internet Explorer, this tag will includethe ActiveX Upload control in the page, and a browse button in NetscapeNavigator. In the published page, the button converts to a link to thepage in Netscape Navigator, while the Internet Explorer displays theActiveX Upload control.

[0515] The QuickPlace Upload control can be used in any manually createdHTML form 122.

[0516] The QuickPlace Rich Text Control

[0517] The example form of Table 55 creates a page that includes theQuickPlace Rich text control to add Rich text and graphic text to thepage. Rich text is formatted by adding the appropriate HTML tag aroundit. To display the graphic text, QuickPlace uses its built-in graphicsserver. The <body> tag contains the complete form, and the <form> tagsare omitted from the HTML page. Fields are added right after the <body>tag. Standard HTML fields can be used for the form, this example usestext fields and a drop-down field. TABLE 55 QuickPlace RICH TEXT CONTROLEXAMPLE <html> <head> <title>Upload control</title> </head> <body><table> <tr> <td colspan=“3”><IMG src=“ecblank.gif” height=“5”width=“200” border=“0”></td> </tr> <tr> <td><b>Document Title</b></td><td>&nbsp;</td> <td><b><input type=“text” name=“h_Name”></b></td> </tr><tr> <td>Your first name</td> <td>&nbsp;</td> <td><input type=“text”name=“fname”</td> </tr> <tr> <td>Your last name</td> <td>&nbsp;</td><td><input type=“text” name=“lname”</td> </tr> <tr> <td>Company</td><td>&nbsp;</td> <td> <select name=“selector”> <option value=“-- chooseone --”>----choose one ----</option> <optionvalue=“Millenia”>Millenia</option> <optionvalue=“TheRock”>TheRock</option> <option value=“CapMan”>CapMan</option></select> </td> </tr> <tr> <td valign=“top”>&nbsp;</td> <tr><td>&nbsp;</td> <td>&nbsp;</td> <td><QUICKPLACECONTROL type= “richtext”name=“richtext”<>/td </tr> </table> </body> </html>

[0518] In the continuation of Table 55, the QuickPlace component isincluded for the Rich text control. In Internet Explorer, this tag willinclude the ActiveX Upload control in the new page, and a Java applet inNetscape Navigator. Both browsers display the Rich text within therelevant HTML tag. To display the graphic text, QuickPlace uses Limerickin both browsers.

QuickPlace Specific JavaScript Functions

[0519] Two QuickPlace specific JavaScript functions to use with formsexist in QuickPlace. They are event handlers that can be called when theform is loaded from or a page created by the form is submitted to theQuickPlace.

[0520] QDK_HTML_FormOnLoadHandlerCallback (theForm)

[0521] This JavaScript function is called when the form loaded from theQuickPlace. It can, for example, set certain default field values. Theexample of Table 56 sets the expiration date for a page created withthis form to two months. TABLE 56 FORM ON LOAD HANDLER functionQDK_HTMLForm_OnLoadHandlerCallback( theForm) { if ( h_IsNewDoc == ‘1’) {var now = new Date( ); now.setMonth( now.getMonth( ) + 2); varexpirationDate = now.toLocaleString( ); expirationDate =expirationDate.substr( 0, expirationDate.indexOf( ‘ ’));theForm.expires.value = expirationDate; } theForm.h_Name.focus( ); }QDK_HTML_FormOnSubmitHandlerCallback ( theForm)

[0522] The JavaScript function of Table 57 is called when the form isloaded from the QuickPlace. It can, for example, check if the user hasentered data into fields that have to be filled. This example checks ifa proper E-mail address has been entered by checking for the @ symboland a dot in the string following it: TABLE 57 HANDLER CALL BACKfunction QDK_HTMLForm_OnSubmitHandlerCallback( theForm) { var isOk =false; if ( theForm.email.value.indexOf( ‘@’) > 0 &&theForm.email.value.indexOf( ‘.’) > 2) { isOk = true; } else { alert(‘Please enter a valid email address’); } return isOk; }

[0523] These functions are very handy to perform checks or changes whileloading forms or publishing pages based on forms. They can be adapted toperform whatever check is needed for a forms.

Advantages Over the Prior Art

[0524] It is an advantage of the invention that there is provided acollaboration space application model for creating web applications thatare aesthetically pleasing and present the user with a simple interface.

[0525] It is a further advantage of the invention that there is providedan improved method and system for creating web applications that areinstantly created, instantly archived, team and project oriented, easyto use, created, accessed and administered via the Web, reusable, andextensible.

[0526] It is a further advantage of the invention that there is providedan improved system and method for creating new fields for use in formsin collaboration space.

Alternative Embodiments

[0527] It will be appreciated that, although specific embodiments of theinvention have been described herein for purposes of illustration,various modifications may be made without departing from the spirit andscope of the invention. In particular, it is within the scope of theinvention to provide a computer program product or program element, or aprogram storage or memory device such as a solid or fluid transmissionmedium, magnetic or optical wire, tape or disc, or the like, for storingsignals readable by a machine, for controlling the operation of acomputer according to the method of the invention and/or to structureits components in accordance with the system of the invention.

[0528] Further, each step of the method may be executed on any generalcomputer, such as an IBM System 390, AS/400, PC or the like and pursuantto one or more, or a part of one or more, program elements, modules orobjects generated from any programming language, such as C++, Java,Pl/1, Fortran or the like. And still further, each said step, or a fileor object or the like implementing each said step, may be executed byspecial purpose hardware or a circuit module designed for that purpose.

[0529] Accordingly, the scope of protection of this invention is limitedonly by the following claims and their equivalents.

We claim:
 1. Method for creating and designing collaboration spaceforms, comprising: organizing said collaboration space according to anobject model selectively including place, room, folder, page, member,form, field, placetype, roomtype, skin, and placebot objects; displayingan interface to said place at a client browser; operating said clientbrowser for creating said form as an object of said place; and operatingsaid client browser for selecting and creating said fields for saidform.
 2. The method of claim 1, further comprising the step responsiveto a user request to create said field, displaying at said browser atask page together with an edit page and fields for all of the materialneeded to create said field.
 3. A method for creating forms in a placein collaboration space, comprising the steps of: creating at a browser ascript file containing field properties and methods which display andoperating on said field; and generating forms with reference to saidfield properties and methods while generating hypertext links on thefly.
 4. The method of claim 3, said forms being task forms.
 5. Themethod of claim 3, further comprising the steps of: responsive to arequest to create a new page, obtaining and displaying to said user alist of possible forms; responsive to a user request to create a newform, obtaining and displaying to said user fields related to said formand an add field selector; responsive to user selection of said addfield selector, displaying to said user a list of field types that canbe created; responsive to user selection and configuration of eachfields corresponding to said field types, saving said new form; andthereafter, responsive to a request to create a new page, displayingsaid new form in said list of possible form.
 6. The method of claim 3,further comprising the steps of: providing a task option for defining atask in collaboration space when adding a new field to a form.
 7. Themethod of claim 6, said task option providing for specification of taskcriteria including start date, whether said task will have a priority orcategory, and a default value for priority.
 8. The method of claim 3,further comprising the steps of storing at a server client code forcreation of fields, and responsive to user selection of field creationsending said client code as a page containing script code for generatinghtml for execution at said client.
 9. The method of claim 7, said taskcriteria specifying that a task page be viewed as a timeline, withoptions for refining said timeline display for a variety of time scales.10. The method of claim 9, said task criteria specifying that a taskpage be viewed in list mode.
 11. A method for defining forms to createpages within collaboration space, comprising the steps of: executing oneof three options to create a form, said options being: creating a formusing field objects from said collaboration space; importing a formcreated in legacy text editor; and importing a form created in an htmleditor; providing in each said option methods for uploading a documentand sending a notification, adding a method to a calendar, and adding atask to a place in said space.
 12. The method of claim 11, said legacytext editor being Microsoft Word.
 13. A method for adaptingcollaboration space to reflect workflow, comprising the step of:responsive to request by a client browser user at an interface to saidcollaboration space to use a form to create a page, providing an optionspage including work flow options selectable by said user for specifyingworkflow options for pages created using said form, said optionsincluding: no special workflow, specifying that pages may be publishedby said user; simple submit, specifying that pages may be created andsubmitted by said user; editor, specifying that pages created by saiduser will only be published after being approved an editor; approvalcycle, specifying that each page is to routed through a series ofmembers of a place in a specific order; multiple editors, specifyingthat pages created by an author can, once published, be further editedby any of the authors in a room in said space.
 14. A method for creatingpages in collaboration space, comprising the steps of: at a clientbrowser providing a user interface to said collaboration space;responsive to a user request to create a new form, displaying an addfields panel including a task field; responsive to user selection ofsaid task field, providing input fields for said user to enter taskname, start date, priority; thereafter, allowing users to create pagesbased on said form by selecting said form from a list of availableforms.
 15. A system for creating and designing collaboration spaceforms, comprising: said collaboration space being structured accordingto an object model selectively including place, room, folder, page,member, form, field, placetype, roomtype, skin, and placebot objects; aclient browser for displaying an interface to said place; a create formpanel for creating from client browser said form as an object of saidplace by selecting and creating said fields for said form.
 16. A systemfor creating forms in a place in collaboration space, comprising: abrowser at a client for creating a script file containing fieldproperties and methods which display and operate on said field; andmeans for generating forms with reference to said field properties andmethods while generating hypertext links on the fly.
 17. A system fordefining forms to create pages within collaboration space, comprising:means for executing one of three options to create a form, said optionsbeing: creating a form using field objects from said collaborationspace; importing a form created in legacy text editor; and importing aform created in an html editor; means for providing in each said optionmethods for uploading a document and sending a notification, adding amethod to a calendar, and adding a task to a place in said space.
 18. Asystem for creating pages in collaboration space, comprising: a clientbrowser for providing a user interface to said collaboration space; anadd field panel responsive to a user request to create a new form fordisplaying an add fields panel including a task field; input fieldsresponsive to user selection of said task field for providing receivingtask criteria from said user; said add field panel thereafter forallowing other users to create pages based on said form by selectingsaid form from a list of available forms.
 19. A program storage devicereadable by a machine, tangibly embodying a program of instructionsexecutable by a machine to perform method steps for creating anddesigning collaboration space forms, said method steps comprising:organizing said collaboration space according to an object modelselectively including place, room, folder, page, member, form, field,placetype, roomtype, skin, and placebot objects; displaying an interfaceto said place at a client browser; operating said client browser forcreating said form as an object of said place; and operating said clientbrowser for selecting and creating said fields for said form.
 20. Aprogram storage device readable by a machine, tangibly embodying aprogram of instructions executable by a machine to perform method stepsfor creating forms in a place in collaboration space, said method stepscomprising: creating at a browser a script file containing fieldproperties and methods which display and operating on said field; andgenerating forms with reference to said field properties and methodswhile generating hypertext links on the fly.
 21. A program storagedevice readable by a machine, tangibly embodying a program ofinstructions executable by a machine to perform method steps fordefining forms to create pages within collaboration space, said methodsteps comprising: executing one of three options to create a form, saidoptions being: creating a form using field objects from saidcollaboration space; importing a form created in legacy text editor; andimporting a form created in an html editor; providing in each saidoption methods for uploading a document and sending a notification,adding a method to a calendar, and adding a task to a place in saidspace.
 22. A program storage device readable by a machine, tangiblyembodying a program of instructions executable by a machine to performmethod steps for adapting collaboration space to reflect workflow, saidmethod steps comprising: responsive to request by a client browser userat an interface to said collaboration space to use a form to create apage, providing an options page including work flow options selectableby said user for specifying workflow options for pages created usingsaid form, said options including: no special workflow, specifying thatpages may be published by said user; simple submit, specifying thatpages may be created and submitted by said user; editor, specifying thatpages created by said user will only be published after being approvedan editor; approval cycle, specifying that each page is to routedthrough a series of members of a place in a specific order; multipleeditors, specifying that pages created by an author can, once published,be further edited by any of the authors in a room in said space.
 23. Aprogram storage device readable by a machine, tangibly embodying aprogram of instructions executable by a machine to perform method stepsfor creating pages in collaboration space, said method steps comprising:at a client browser providing a user interface to said collaborationspace; responsive to a user request to create a new form, displaying anadd fields panel including a task field; responsive to user selection ofsaid task field, providing input fields for said user to enter taskname, start date, priority; thereafter, allowing other users to createpages based on said form by selecting said form from a list of availableforms.
 24. A computer program product or computer program element forcreating pages in collaboration space according to steps comprising: ata client browser providing a user interface to said collaboration space;responsive to a user request to create a new form, displaying an addfields panel including a task field; responsive to user selection ofsaid task field, providing input fields for said user to enter taskname, start date, priority; thereafter, allowing users to create pagesbased on said form by selecting said form from a list of availableforms.
 25. A computer program product for creating forms in a place incollaboration space according to method steps comprising: creating at abrowser a script file containing field properties and methods whichdisplay and operating on said field; and generating forms with referenceto said field properties and methods while generating hypertext links onthe fly.